From: Wink Saville Date: Sat, 1 Apr 2017 21:56:58 +0000 (-0700) Subject: Compiles and runs X-Git-Tag: otter-0.2.0~707^2~3^2~2 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=1e792f39d2c009445ae7ce8eb6efbcebe8959f9d;p=otter.git 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. --- 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 + } +}