diff options
author | Brion Vibber <brion@pobox.com> | 2019-07-01 16:46:08 -0400 |
---|---|---|
committer | Alon Zakai <azakai@google.com> | 2019-07-01 13:46:08 -0700 |
commit | ab34a779552ea4a8747e7729433d8c7f89c458c0 (patch) | |
tree | a6037c5bf1e4bd1379621116fd285f69621ab9ed | |
parent | 6f466401cb5ee6138898cddb0e9ed3e741166011 (diff) | |
download | binaryen-ab34a779552ea4a8747e7729433d8c7f89c458c0.tar.gz binaryen-ab34a779552ea4a8747e7729433d8c7f89c458c0.tar.bz2 binaryen-ab34a779552ea4a8747e7729433d8c7f89c458c0.zip |
Workaround for wasm2js output minification issue with emscripten (#2185)
* Workaround for wasm2js output minification issue with emscripten
When using emscripten with -O2 and --memory-init-file 0, the
JS minification breaks on this function for memory initialization
setup, causing an exception to be thrown during module setup.
Moving from two 'var' declarations for the same variable to one
should avoid hitting this with no change in functionality (the
var gets hoisted anyway).
https://github.com/emscripten-core/emscripten/issues/8886
-rw-r--r-- | src/wasm2js.h | 5 | ||||
-rw-r--r-- | test/wasm2js/address.2asm.js | 5 | ||||
-rw-r--r-- | test/wasm2js/dynamicLibrary.2asm.js | 5 | ||||
-rw-r--r-- | test/wasm2js/dynamicLibrary.2asm.js.opt | 5 | ||||
-rw-r--r-- | test/wasm2js/emscripten.2asm.js | 5 | ||||
-rw-r--r-- | test/wasm2js/emscripten.2asm.js.opt | 5 |
6 files changed, 18 insertions, 12 deletions
diff --git a/src/wasm2js.h b/src/wasm2js.h index a14aad2a4..d01a2dcd7 100644 --- a/src/wasm2js.h +++ b/src/wasm2js.h @@ -2146,12 +2146,13 @@ void Wasm2JSGlue::emitMemory( function(mem) { var _mem = new Uint8Array(mem); return function(offset, s) { + var bytes; if (typeof Buffer === 'undefined') { - var bytes = atob(s); + bytes = atob(s); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes.charCodeAt(i); } else { - var bytes = Buffer.from(s, 'base64'); + bytes = Buffer.from(s, 'base64'); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes[i]; } diff --git a/test/wasm2js/address.2asm.js b/test/wasm2js/address.2asm.js index 4038425ba..210f3b737 100644 --- a/test/wasm2js/address.2asm.js +++ b/test/wasm2js/address.2asm.js @@ -83,12 +83,13 @@ var assignasmFunc = ( function(mem) { var _mem = new Uint8Array(mem); return function(offset, s) { + var bytes; if (typeof Buffer === 'undefined') { - var bytes = atob(s); + bytes = atob(s); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes.charCodeAt(i); } else { - var bytes = Buffer.from(s, 'base64'); + bytes = Buffer.from(s, 'base64'); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes[i]; } diff --git a/test/wasm2js/dynamicLibrary.2asm.js b/test/wasm2js/dynamicLibrary.2asm.js index 55c6d6500..074c2bc43 100644 --- a/test/wasm2js/dynamicLibrary.2asm.js +++ b/test/wasm2js/dynamicLibrary.2asm.js @@ -51,12 +51,13 @@ var assignasmFunc = ( function(mem) { var _mem = new Uint8Array(mem); return function(offset, s) { + var bytes; if (typeof Buffer === 'undefined') { - var bytes = atob(s); + bytes = atob(s); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes.charCodeAt(i); } else { - var bytes = Buffer.from(s, 'base64'); + bytes = Buffer.from(s, 'base64'); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes[i]; } diff --git a/test/wasm2js/dynamicLibrary.2asm.js.opt b/test/wasm2js/dynamicLibrary.2asm.js.opt index 2eebc6f98..535e6732b 100644 --- a/test/wasm2js/dynamicLibrary.2asm.js.opt +++ b/test/wasm2js/dynamicLibrary.2asm.js.opt @@ -43,12 +43,13 @@ var assignasmFunc = ( function(mem) { var _mem = new Uint8Array(mem); return function(offset, s) { + var bytes; if (typeof Buffer === 'undefined') { - var bytes = atob(s); + bytes = atob(s); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes.charCodeAt(i); } else { - var bytes = Buffer.from(s, 'base64'); + bytes = Buffer.from(s, 'base64'); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes[i]; } diff --git a/test/wasm2js/emscripten.2asm.js b/test/wasm2js/emscripten.2asm.js index 6304e9b9d..0954f3f98 100644 --- a/test/wasm2js/emscripten.2asm.js +++ b/test/wasm2js/emscripten.2asm.js @@ -203,12 +203,13 @@ var writeSegment = ( function(mem) { var _mem = new Uint8Array(mem); return function(offset, s) { + var bytes; if (typeof Buffer === 'undefined') { - var bytes = atob(s); + bytes = atob(s); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes.charCodeAt(i); } else { - var bytes = Buffer.from(s, 'base64'); + bytes = Buffer.from(s, 'base64'); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes[i]; } diff --git a/test/wasm2js/emscripten.2asm.js.opt b/test/wasm2js/emscripten.2asm.js.opt index 69251d9bb..2cb4ee46c 100644 --- a/test/wasm2js/emscripten.2asm.js.opt +++ b/test/wasm2js/emscripten.2asm.js.opt @@ -184,12 +184,13 @@ var writeSegment = ( function(mem) { var _mem = new Uint8Array(mem); return function(offset, s) { + var bytes; if (typeof Buffer === 'undefined') { - var bytes = atob(s); + bytes = atob(s); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes.charCodeAt(i); } else { - var bytes = Buffer.from(s, 'base64'); + bytes = Buffer.from(s, 'base64'); for (var i = 0; i < bytes.length; i++) _mem[offset + i] = bytes[i]; } |