chiark / gitweb /
WIP: Initial tweaks to get running
authorWink Saville <wink@saville.com>
Fri, 31 Mar 2017 16:45:04 +0000 (09:45 -0700)
committerWink Saville <wink@saville.com>
Fri, 31 Mar 2017 16:45:04 +0000 (09:45 -0700)
package.json [new file with mode: 0644]
test/wasm.js
test/wasm.ts

diff --git a/package.json b/package.json
new file mode 100644 (file)
index 0000000..0057103
--- /dev/null
@@ -0,0 +1,6 @@
+{
+  "scripts": {
+    "pretest": "tsc -p test/tsconfig.json",
+    "test": "node --expose-wasm test/wasm.js"
+  }
+}
index 1868b3bf5965189b866162cde45175fe6e1c97c6..e205405b5a3a70f2da040ecdc112bc6373067c4b 100644 (file)
@@ -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);
 });
index 9b956fc64bbdcce3e8da33f957d542e1a8c9153a..4ae6e94b72d66f8042086d70cae9342860360184 100644 (file)
@@ -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);
 });