Skip to content

Commit ab34a77

Browse files
bvibberkripken
authored andcommitted
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). emscripten-core/emscripten#8886
1 parent 6f46640 commit ab34a77

6 files changed

Lines changed: 18 additions & 12 deletions

File tree

src/wasm2js.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2146,12 +2146,13 @@ void Wasm2JSGlue::emitMemory(
21462146
function(mem) {
21472147
var _mem = new Uint8Array(mem);
21482148
return function(offset, s) {
2149+
var bytes;
21492150
if (typeof Buffer === 'undefined') {
2150-
var bytes = atob(s);
2151+
bytes = atob(s);
21512152
for (var i = 0; i < bytes.length; i++)
21522153
_mem[offset + i] = bytes.charCodeAt(i);
21532154
} else {
2154-
var bytes = Buffer.from(s, 'base64');
2155+
bytes = Buffer.from(s, 'base64');
21552156
for (var i = 0; i < bytes.length; i++)
21562157
_mem[offset + i] = bytes[i];
21572158
}

test/wasm2js/address.2asm.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,13 @@ var assignasmFunc = (
8383
function(mem) {
8484
var _mem = new Uint8Array(mem);
8585
return function(offset, s) {
86+
var bytes;
8687
if (typeof Buffer === 'undefined') {
87-
var bytes = atob(s);
88+
bytes = atob(s);
8889
for (var i = 0; i < bytes.length; i++)
8990
_mem[offset + i] = bytes.charCodeAt(i);
9091
} else {
91-
var bytes = Buffer.from(s, 'base64');
92+
bytes = Buffer.from(s, 'base64');
9293
for (var i = 0; i < bytes.length; i++)
9394
_mem[offset + i] = bytes[i];
9495
}

test/wasm2js/dynamicLibrary.2asm.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,13 @@ var assignasmFunc = (
5151
function(mem) {
5252
var _mem = new Uint8Array(mem);
5353
return function(offset, s) {
54+
var bytes;
5455
if (typeof Buffer === 'undefined') {
55-
var bytes = atob(s);
56+
bytes = atob(s);
5657
for (var i = 0; i < bytes.length; i++)
5758
_mem[offset + i] = bytes.charCodeAt(i);
5859
} else {
59-
var bytes = Buffer.from(s, 'base64');
60+
bytes = Buffer.from(s, 'base64');
6061
for (var i = 0; i < bytes.length; i++)
6162
_mem[offset + i] = bytes[i];
6263
}

test/wasm2js/dynamicLibrary.2asm.js.opt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,13 @@ var assignasmFunc = (
4343
function(mem) {
4444
var _mem = new Uint8Array(mem);
4545
return function(offset, s) {
46+
var bytes;
4647
if (typeof Buffer === 'undefined') {
47-
var bytes = atob(s);
48+
bytes = atob(s);
4849
for (var i = 0; i < bytes.length; i++)
4950
_mem[offset + i] = bytes.charCodeAt(i);
5051
} else {
51-
var bytes = Buffer.from(s, 'base64');
52+
bytes = Buffer.from(s, 'base64');
5253
for (var i = 0; i < bytes.length; i++)
5354
_mem[offset + i] = bytes[i];
5455
}

test/wasm2js/emscripten.2asm.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,13 @@ var writeSegment = (
203203
function(mem) {
204204
var _mem = new Uint8Array(mem);
205205
return function(offset, s) {
206+
var bytes;
206207
if (typeof Buffer === 'undefined') {
207-
var bytes = atob(s);
208+
bytes = atob(s);
208209
for (var i = 0; i < bytes.length; i++)
209210
_mem[offset + i] = bytes.charCodeAt(i);
210211
} else {
211-
var bytes = Buffer.from(s, 'base64');
212+
bytes = Buffer.from(s, 'base64');
212213
for (var i = 0; i < bytes.length; i++)
213214
_mem[offset + i] = bytes[i];
214215
}

test/wasm2js/emscripten.2asm.js.opt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,12 +184,13 @@ var writeSegment = (
184184
function(mem) {
185185
var _mem = new Uint8Array(mem);
186186
return function(offset, s) {
187+
var bytes;
187188
if (typeof Buffer === 'undefined') {
188-
var bytes = atob(s);
189+
bytes = atob(s);
189190
for (var i = 0; i < bytes.length; i++)
190191
_mem[offset + i] = bytes.charCodeAt(i);
191192
} else {
192-
var bytes = Buffer.from(s, 'base64');
193+
bytes = Buffer.from(s, 'base64');
193194
for (var i = 0; i < bytes.length; i++)
194195
_mem[offset + i] = bytes[i];
195196
}

0 commit comments

Comments
 (0)