chiark / gitweb /
Compiles and runs
authorWink Saville <wink@saville.com>
Sat, 1 Apr 2017 21:56:58 +0000 (14:56 -0700)
committerWink Saville <wink@saville.com>
Sat, 1 Apr 2017 21:56:58 +0000 (14:56 -0700)
Added tsconfig.base.json with stricter settings which found one error
in where instantiateFile filePath parameter wasn't being used.

The "fix" was to use separate promise chain into separate variables each
with the appropriate type. My best guess is that the overloaded
instantiate confused the compiler and the inferencing wasn't working.

test/tsconfig.json
test/wasm.js
test/wasm.js.map [new file with mode: 0644]
test/wasm.ts
tsconfig.base.json [new file with mode: 0644]

index 5406175220ba8cdda15f50efbe584f26de025fdb..47d6dd0a6f8bc8814a4d84a60d8944bd73a8b314 100644 (file)
@@ -1,7 +1,4 @@
 {
-  "compilerOptions": {
-    "target": "es6",
-    "module": "commonjs"
-  },
+  "extends": "../tsconfig.base.json",
   "files": ["wasm"]
-}
\ No newline at end of file
+}
index 1de644252aa2c19c5865a9ae97ababf226febfb6..4a44aace45ed236022a069c37b35438c5b19229b 100644 (file)
@@ -107,8 +107,8 @@ WebAssembly.instantiate(wasmModule).then((instance) => {
 function instantiateFile(filePath) {
     return __awaiter(this, void 0, void 0, function* () {
         console.log("instantiateFile:+ readFile");
-        let instance = yield readFileAsync("./test/addTwo.wasm")
-            .then(data => {
+        let promise1 = readFileAsync(filePath);
+        let promise2 = promise1.then(data => {
             console.log("instantiateFile fileRead:");
             console.log(`data.length=${data.length}`);
             console.log(`data[0]=${data[0].toString(16)}`);
@@ -122,13 +122,13 @@ function instantiateFile(filePath) {
             // Compile
             console.log("instantiateFile compile:");
             return Promise.resolve(WebAssembly.compile(data));
-        })
-            .then(mod => {
+        });
+        let promise3 = promise2.then(mod => {
             console.log("instantiateFile compiled return Module:");
             return Promise.resolve(WebAssembly.instantiate(mod));
         });
         console.log("instantiateFile:-");
-        return instance;
+        return promise3;
     });
 }
 // Use instantiateFile
@@ -137,3 +137,4 @@ instantiateFile("./test/addTwo.wasm").then(inst => {
     console.log(`done instantiateFile inst=${inst}`);
     console.log(`exec inst.exports..addTwo1(0,0)=${inst.exports.addTwo1(0, 0)}`);
 });
+//# sourceMappingURL=wasm.js.map
\ No newline at end of file
diff --git a/test/wasm.js.map b/test/wasm.js.map
new file mode 100644 (file)
index 0000000..5cc2665
--- /dev/null
@@ -0,0 +1 @@
+{"version":3,"file":"wasm.js","sourceRoot":"","sources":["wasm.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
index 194e3a8bc08e6abd78e0f13a2fc15b530de02011..334135e6367af0bb2ae0f894d87d061303291b00 100644 (file)
@@ -111,8 +111,8 @@ WebAssembly.instantiate(wasmModule).then((instance: WebAssembly.Instance) => {
 
 async function instantiateFile(filePath: string): Promise<WebAssembly.Instance> {
   console.log("instantiateFile:+ readFile");
-  let instance = await readFileAsync("./test/addTwo.wasm")
-    .then(data => {
+  let promise1: Promise<Uint8Array> = readFileAsync(filePath);
+  let promise2: Promise<WebAssembly.Module> = promise1.then(data => {
       console.log("instantiateFile fileRead:");
       console.log(`data.length=${data.length}`);
       console.log(`data[0]=${data[0].toString(16)}`);
@@ -127,13 +127,13 @@ async function instantiateFile(filePath: string): Promise<WebAssembly.Instance>
       // Compile
       console.log("instantiateFile compile:");
       return Promise.resolve(WebAssembly.compile(data));
-    })
-    .then(mod => {
+    });
+  let promise3: Promise<WebAssembly.Instance> = promise2.then(mod => {
       console.log("instantiateFile compiled return Module:");
       return Promise.resolve(WebAssembly.instantiate(mod));
     });
   console.log("instantiateFile:-");
-  return instance;
+  return promise3;
 }
 
 // Use instantiateFile
diff --git a/tsconfig.base.json b/tsconfig.base.json
new file mode 100644 (file)
index 0000000..bbe9976
--- /dev/null
@@ -0,0 +1,20 @@
+{
+  "compilerOptions": {
+    "target": "es6",
+    "noImplicitAny": true,
+    "module": "commonjs",
+    "moduleResolution": "Node",
+    "sourceMap": true,
+    "allowJs": false,
+    "alwaysStrict": true,
+    "noImplicitAny": true,
+    "noImplicitReturns": true,
+    "noImplicitThis": true,
+    "noEmitOnError": true,
+    "noUnusedLocals": true,
+    "noUnusedParameters": true,
+    "experimentalDecorators": true,
+    "forceConsistentCasingInFileNames": true,
+    "strictNullChecks": true
+  }
+}