From 1e792f39d2c009445ae7ce8eb6efbcebe8959f9d Mon Sep 17 00:00:00 2001 From: Wink Saville Date: Sat, 1 Apr 2017 14:56:58 -0700 Subject: [PATCH] Compiles and runs 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 | 7 ++----- test/wasm.js | 11 ++++++----- test/wasm.js.map | 1 + test/wasm.ts | 10 +++++----- tsconfig.base.json | 20 ++++++++++++++++++++ 5 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 test/wasm.js.map create mode 100644 tsconfig.base.json diff --git a/test/tsconfig.json b/test/tsconfig.json index 54061752..47d6dd0a 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,7 +1,4 @@ { - "compilerOptions": { - "target": "es6", - "module": "commonjs" - }, + "extends": "../tsconfig.base.json", "files": ["wasm"] -} \ No newline at end of file +} diff --git a/test/wasm.js b/test/wasm.js index 1de64425..4a44aace 100644 --- a/test/wasm.js +++ b/test/wasm.js @@ -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 index 00000000..5cc26658 --- /dev/null +++ b/test/wasm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"wasm.js","sourceRoot":"","sources":["wasm.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/test/wasm.ts b/test/wasm.ts index 194e3a8b..334135e6 100644 --- a/test/wasm.ts +++ b/test/wasm.ts @@ -111,8 +111,8 @@ WebAssembly.instantiate(wasmModule).then((instance: WebAssembly.Instance) => { async function instantiateFile(filePath: string): Promise { console.log("instantiateFile:+ readFile"); - let instance = await readFileAsync("./test/addTwo.wasm") - .then(data => { + let promise1: Promise = readFileAsync(filePath); + let promise2: Promise = 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 // Compile console.log("instantiateFile compile:"); return Promise.resolve(WebAssembly.compile(data)); - }) - .then(mod => { + }); + let promise3: Promise = 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 index 00000000..bbe99768 --- /dev/null +++ b/tsconfig.base.json @@ -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 + } +} -- 2.30.2