From 4914f83bf4598ab9bf9d4d7ba4c40e57d67b32b3 Mon Sep 17 00:00:00 2001 From: Wink Saville Date: Fri, 31 Mar 2017 09:45:04 -0700 Subject: [PATCH] WIP: Initial tweaks to get running --- package.json | 6 ++++++ test/wasm.js | 41 ++++++++++++++++++++++------------------- test/wasm.ts | 41 ++++++++++++++++++++++------------------- 3 files changed, 50 insertions(+), 38 deletions(-) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 00000000..0057103e --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "scripts": { + "pretest": "tsc -p test/tsconfig.json", + "test": "node --expose-wasm test/wasm.js" + } +} diff --git a/test/wasm.js b/test/wasm.js index 1868b3bf..e205405b 100644 --- a/test/wasm.js +++ b/test/wasm.js @@ -5,43 +5,46 @@ let source = new Uint8Array(1); //Table let table = new WebAssembly.Table({ element: "anyfunc", initial: 1, maximum: 10 }); -console.log(table.length); -table.get(0)(); +console.log(`table.length=${table.length}`); +console.log(`table.get(0)=${table.get(0)}`); table.set(0, function () { }); table.grow(1); //Memory -let memory = new WebAssembly.Memory({ initial: 2, maximum: 256 }); -console.log(memory.grow(512)); +let memory = new WebAssembly.Memory({ initial: 2, maximum: 4 }); +console.log(`memory.grow(8)=${memory.grow(8)}`); let u8 = new Uint8Array(memory.buffer); -console.log(u8); +u8[0] = 1; +u8[1] = 2; +console.log(`u8[0]=${u8[0]}`); +console.log(`u8[1]=${u8[1]}`); //Module -let module = new WebAssembly.Module(source); +let wasmModule = new WebAssembly.Module(source); //customSections -let nameSections = WebAssembly.Module.customSections(module, "name"); +let nameSections = WebAssembly.Module.customSections(wasmModule, "name"); if (nameSections.length != 0) { console.log("Module contains a name section"); console.log(nameSections[0]); } //exports -console.log(WebAssembly.Module.exports(module).length); -console.log(WebAssembly.Module.exports(module)[0].name); -console.log(WebAssembly.Module.exports(module)[0].kind); +console.log(WebAssembly.Module.exports(wasmModule).length); +console.log(WebAssembly.Module.exports(wasmModule)[0].name); +console.log(WebAssembly.Module.exports(wasmModule)[0].kind); //imports -console.log(WebAssembly.Module.imports(module).length); -console.log(WebAssembly.Module.imports(module)[0].module); -console.log(WebAssembly.Module.imports(module)[0].name); -console.log(WebAssembly.Module.imports(module)[0].kind); +console.log(WebAssembly.Module.imports(wasmModule).length); +console.log(WebAssembly.Module.imports(wasmModule)[0].module); +console.log(WebAssembly.Module.imports(wasmModule)[0].name); +console.log(WebAssembly.Module.imports(wasmModule)[0].kind); //Instance -let instance = new WebAssembly.Instance(module); +let instance = new WebAssembly.Instance(wasmModule); console.log(instance.exports.exported_func()); let bytes = new ArrayBuffer(1); //dummy bytes //validate let valid = WebAssembly.validate(bytes); -console.log("The given bytes are " + (valid ? "" : "not ") + "a valid wasm module"); +console.log("The given bytes are " + (valid ? "" : "not ") + "a valid wasm wasmModule"); //compile WebAssembly.compile(bytes).then((module) => { - console.log(module); + console.log(wasmModule); }); //instantiate //Primary overload — taking wasm binary code @@ -49,7 +52,7 @@ WebAssembly.instantiate(bytes).then((result) => { console.log(result.module); console.log(result.instance); }); -//Secondary overload — taking a module object instance -WebAssembly.instantiate(module).then((instance) => { +//Secondary overload — taking a wasmModule object instance +WebAssembly.instantiate(wasmModule).then((instance) => { console.log(instance); }); diff --git a/test/wasm.ts b/test/wasm.ts index 9b956fc6..4ae6e94b 100644 --- a/test/wasm.ts +++ b/test/wasm.ts @@ -7,49 +7,52 @@ let source: Uint8Array = new Uint8Array(1); //Table let table = new WebAssembly.Table({element: "anyfunc", initial: 1, maximum: 10}); -console.log(table.length); -table.get(0)(); +console.log(`table.length=${table.length}`); +console.log(`table.get(0)=${table.get(0)}`); table.set(0, function () { }); table.grow(1); //Memory -let memory = new WebAssembly.Memory({initial: 2, maximum: 256}); -console.log(memory.grow(512)); +let memory = new WebAssembly.Memory({initial: 2, maximum: 4}); +console.log(`memory.grow(8)=${memory.grow(8)}`); let u8 = new Uint8Array(memory.buffer); -console.log(u8); +u8[0] = 1; +u8[1] = 2; +console.log(`u8[0]=${u8[0]}`); +console.log(`u8[1]=${u8[1]}`); //Module -let module = new WebAssembly.Module(source); +let wasmModule = new WebAssembly.Module(source); //customSections -let nameSections = WebAssembly.Module.customSections(module, "name"); +let nameSections = WebAssembly.Module.customSections(wasmModule, "name"); if (nameSections.length != 0) { console.log("Module contains a name section"); console.log(nameSections[0]); } //exports -console.log(WebAssembly.Module.exports(module).length); -console.log(WebAssembly.Module.exports(module)[0].name); -console.log(WebAssembly.Module.exports(module)[0].kind); +console.log(WebAssembly.Module.exports(wasmModule).length); +console.log(WebAssembly.Module.exports(wasmModule)[0].name); +console.log(WebAssembly.Module.exports(wasmModule)[0].kind); //imports -console.log(WebAssembly.Module.imports(module).length); -console.log(WebAssembly.Module.imports(module)[0].module); -console.log(WebAssembly.Module.imports(module)[0].name); -console.log(WebAssembly.Module.imports(module)[0].kind); +console.log(WebAssembly.Module.imports(wasmModule).length); +console.log(WebAssembly.Module.imports(wasmModule)[0].module); +console.log(WebAssembly.Module.imports(wasmModule)[0].name); +console.log(WebAssembly.Module.imports(wasmModule)[0].kind); //Instance -let instance = new WebAssembly.Instance(module); +let instance = new WebAssembly.Instance(wasmModule); console.log(instance.exports.exported_func()); let bytes = new ArrayBuffer(1);//dummy bytes //validate let valid = WebAssembly.validate(bytes); -console.log("The given bytes are " + (valid ? "" : "not ") + "a valid wasm module"); +console.log("The given bytes are " + (valid ? "" : "not ") + "a valid wasm wasmModule"); //compile WebAssembly.compile(bytes).then((module: WebAssembly.Module) => { - console.log(module); + console.log(wasmModule); }); //instantiate @@ -58,7 +61,7 @@ WebAssembly.instantiate(bytes).then((result: WebAssembly.ResultObject) => { console.log(result.module); console.log(result.instance); }); -//Secondary overload — taking a module object instance -WebAssembly.instantiate(module).then((instance: WebAssembly.Instance) => { +//Secondary overload — taking a wasmModule object instance +WebAssembly.instantiate(wasmModule).then((instance: WebAssembly.Instance) => { console.log(instance); }); -- 2.30.2