From c7e446171c70a7857783cbea80d693dc8a702141 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 30 Sep 2020 14:26:17 -0700 Subject: [PATCH 1/2] wasm2js: overide incoming memory's grow method This will allow for the completely removal of __growWasmMemory as a followup. We currently unconditionaly generate this function in generateMemoryGrowthFunction. See #31803180 --- scripts/wasm2js.js | 6 --- src/wasm2js.h | 41 +++++++++++++++----- test/wasm2js/atomic_fence.2asm.js | 7 ++-- test/wasm2js/atomics_32.2asm.js | 7 ++-- test/wasm2js/atomics_32.2asm.js.opt | 7 ++-- test/wasm2js/bulk-memory.2asm.js | 28 +++++++------ test/wasm2js/bulk-memory.2asm.js.opt | 28 +++++++------ test/wasm2js/deterministic.2asm.js | 7 ++-- test/wasm2js/deterministic.2asm.js.opt | 7 ++-- test/wasm2js/dynamicLibrary.2asm.js | 7 ++-- test/wasm2js/dynamicLibrary.2asm.js.opt | 7 ++-- test/wasm2js/emscripten-grow-no.2asm.js | 5 ++- test/wasm2js/emscripten-grow-no.2asm.js.opt | 5 ++- test/wasm2js/emscripten-grow-yes.2asm.js | 6 ++- test/wasm2js/emscripten-grow-yes.2asm.js.opt | 6 ++- test/wasm2js/emscripten.2asm.js | 5 ++- test/wasm2js/emscripten.2asm.js.opt | 5 ++- test/wasm2js/endianness.2asm.js | 7 ++-- test/wasm2js/grow-memory-tricky.2asm.js | 7 ++-- test/wasm2js/grow-memory-tricky.2asm.js.opt | 7 ++-- test/wasm2js/grow_memory.2asm.js | 7 ++-- test/wasm2js/left-to-right.2asm.js | 7 ++-- test/wasm2js/minified-memory.2asm.js | 8 ++-- test/wasm2js/minified-memory.2asm.js.opt | 8 ++-- test/wasm2js/reinterpret_scratch.2asm.js | 7 ++-- test/wasm2js/reinterpret_scratch.2asm.js.opt | 7 ++-- test/wasm2js/start_func.2asm.js | 7 ++-- test/wasm2js/start_func.2asm.js.opt | 7 ++-- test/wasm2js/traps.2asm.js | 7 ++-- test/wasm2js/unaligned.2asm.js | 7 ++-- test/wasm2js/unaligned.2asm.js.opt | 7 ++-- 31 files changed, 170 insertions(+), 114 deletions(-) diff --git a/scripts/wasm2js.js b/scripts/wasm2js.js index 7bb8453bccf..babf3126770 100644 --- a/scripts/wasm2js.js +++ b/scripts/wasm2js.js @@ -6,12 +6,6 @@ var WebAssembly = { Memory: function(opts) { return { buffer: new ArrayBuffer(opts['initial'] * 64 * 1024), - grow: function(amount) { - var oldBuffer = this.buffer; - var ret = __growWasmMemory(amount); - assert(this.buffer !== oldBuffer); // the call should have updated us - return ret; - } }; }, diff --git a/src/wasm2js.h b/src/wasm2js.h index 0a2e45d494a..3278d403788 100644 --- a/src/wasm2js.h +++ b/src/wasm2js.h @@ -280,7 +280,7 @@ class Wasm2JSBuilder { void addExports(Ref ast, Module* wasm); void addGlobal(Ref ast, Global* global); void addMemoryFuncs(Ref ast, Module* wasm); - void addMemoryGrowthFuncs(Ref ast, Module* wasm); + void addMemoryGrowFunc(Ref ast, Module* wasm); Wasm2JSBuilder() = delete; Wasm2JSBuilder(const Wasm2JSBuilder&) = delete; @@ -383,8 +383,17 @@ Ref Wasm2JSBuilder::processWasm(Module* wasm, Name funcName) { ret[1]->push_back(asmFunc); ValueBuilder::appendArgumentToFunction(asmFunc, GLOBAL); ValueBuilder::appendArgumentToFunction(asmFunc, ENV); + if (wasm->memory.exists) { - ValueBuilder::appendArgumentToFunction(asmFunc, BUFFER); + ValueBuilder::appendArgumentToFunction(asmFunc, "memoryIn"); + Ref buf = ValueBuilder::makeVar(); + asmFunc[3]->push_back(buf); + ValueBuilder::appendToVar( + buf, + BUFFER, + ValueBuilder::makeDot(ValueBuilder::makeName("memoryIn"), + ValueBuilder::makeName("buffer"))); + // add memory import if (wasm->memory.imported()) { Ref theVar = ValueBuilder::makeVar(); @@ -394,8 +403,20 @@ Ref Wasm2JSBuilder::processWasm(Module* wasm, Name funcName) { "memory", ValueBuilder::makeDot(ValueBuilder::makeName(ENV), ValueBuilder::makeName(wasm->memory.base))); + + // If memory is growable, override the imported memory's grow method to + // ensure so that when grow is called from the output it works as expected + if (wasm->memory.max > wasm->memory.initial) { + asmFunc[3]->push_back( + ValueBuilder::makeStatement(ValueBuilder::makeBinary( + ValueBuilder::makeDot(ValueBuilder::makeName("memory"), + ValueBuilder::makeName("grow")), + SET, + ValueBuilder::makeName(WASM_MEMORY_GROW)))); + } } } + // add table import if (wasm->table.exists && wasm->table.imported()) { Ref theVar = ValueBuilder::makeVar(); @@ -2205,11 +2226,11 @@ void Wasm2JSBuilder::addMemoryFuncs(Ref ast, Module* wasm) { ast->push_back(memorySizeFunc); if (wasm->memory.max > wasm->memory.initial) { - addMemoryGrowthFuncs(ast, wasm); + addMemoryGrowFunc(ast, wasm); } } -void Wasm2JSBuilder::addMemoryGrowthFuncs(Ref ast, Module* wasm) { +void Wasm2JSBuilder::addMemoryGrowFunc(Ref ast, Module* wasm) { Ref memoryGrowFunc = ValueBuilder::makeFunction(WASM_MEMORY_GROW); ValueBuilder::appendArgumentToFunction(memoryGrowFunc, IString("pagesToAdd")); @@ -2456,7 +2477,7 @@ void Wasm2JSGlue::emitPostEmscripten() { << " 'Math': Math\n" << " },\n" << " asmLibraryArg,\n" - << " wasmMemory.buffer\n" + << " wasmMemory\n" << ")" << "\n" << "\n" @@ -2470,11 +2491,13 @@ void Wasm2JSGlue::emitPostES6() { // // Note that the translation here expects that the lower values of this memory // can be used for conversions, so make sure there's at least one page. + Name memoryName(std::string("mem") + moduleName.str); + if (wasm.memory.exists) { - out << "var mem" << moduleName.str << " = new ArrayBuffer(" - << wasm.memory.initial.addr * Memory::kPageSize << ");\n"; + out << "var " << memoryName.str << " = { buffer: new ArrayBuffer(" + << wasm.memory.initial.addr * Memory::kPageSize << ") };\n"; - emitMemory(std::string("mem") + moduleName.str, + emitMemory(std::string(memoryName.str) + ".buffer", std::string("assign") + moduleName.str, [](std::string globalName) { return globalName; }); } @@ -2516,7 +2539,7 @@ void Wasm2JSGlue::emitPostES6() { }); if (wasm.memory.exists) { - out << "\n },\n mem" << moduleName.str << "\n);\n"; + out << "\n },\n " << memoryName.str << "\n);\n"; } else { out << "\n });\n"; } diff --git a/test/wasm2js/atomic_fence.2asm.js b/test/wasm2js/atomic_fence.2asm.js index 5ce7d8ce1c1..eef5ecb4382 100644 --- a/test/wasm2js/atomic_fence.2asm.js +++ b/test/wasm2js/atomic_fence.2asm.js @@ -1,5 +1,6 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -55,8 +56,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(1507328); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(1507328) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/atomics_32.2asm.js b/test/wasm2js/atomics_32.2asm.js index c01f717060f..f403267ade0 100644 --- a/test/wasm2js/atomics_32.2asm.js +++ b/test/wasm2js/atomics_32.2asm.js @@ -67,7 +67,8 @@ var memorySegments = {}; -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -128,8 +129,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(16777216); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(16777216) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' diff --git a/test/wasm2js/atomics_32.2asm.js.opt b/test/wasm2js/atomics_32.2asm.js.opt index 516d67aee73..25ff054d92c 100644 --- a/test/wasm2js/atomics_32.2asm.js.opt +++ b/test/wasm2js/atomics_32.2asm.js.opt @@ -67,7 +67,8 @@ var memorySegments = {}; -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -124,8 +125,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(16777216); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(16777216) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' diff --git a/test/wasm2js/bulk-memory.2asm.js b/test/wasm2js/bulk-memory.2asm.js index 5983db235a8..ec60394d552 100644 --- a/test/wasm2js/bulk-memory.2asm.js +++ b/test/wasm2js/bulk-memory.2asm.js @@ -46,7 +46,8 @@ var retasmFunc = asmFunc({ bufferView.fill(value, dest, dest + size); } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -111,8 +112,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, @@ -144,7 +145,8 @@ export var load8_u = retasmFunc.load8_u; bufferView.copyWithin(dest, source, source + size); } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -187,8 +189,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -242,7 +244,8 @@ export var load8_u = retasmFunc.load8_u; var memorySegments = {}; -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -307,8 +310,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -367,7 +370,8 @@ export var load8_u = retasmFunc.load8_u; var memorySegments = {}; -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -438,8 +442,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' diff --git a/test/wasm2js/bulk-memory.2asm.js.opt b/test/wasm2js/bulk-memory.2asm.js.opt index 6616ef8f1e5..4da7c754d52 100644 --- a/test/wasm2js/bulk-memory.2asm.js.opt +++ b/test/wasm2js/bulk-memory.2asm.js.opt @@ -46,7 +46,8 @@ var retasmFunc = asmFunc({ bufferView.fill(value, dest, dest + size); } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -111,8 +112,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, @@ -144,7 +145,8 @@ export var load8_u = retasmFunc.load8_u; bufferView.copyWithin(dest, source, source + size); } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -187,8 +189,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -242,7 +244,8 @@ export var load8_u = retasmFunc.load8_u; var memorySegments = {}; -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -307,8 +310,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -349,7 +352,8 @@ var retasmFunc = asmFunc({ export var init = retasmFunc.init; export var load8_u = retasmFunc.load8_u; -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -414,8 +418,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/deterministic.2asm.js b/test/wasm2js/deterministic.2asm.js index b5ed9b88e34..f77cf10990f 100644 --- a/test/wasm2js/deterministic.2asm.js +++ b/test/wasm2js/deterministic.2asm.js @@ -1,5 +1,6 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -38,8 +39,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/deterministic.2asm.js.opt b/test/wasm2js/deterministic.2asm.js.opt index 5c3d6cea633..ef77044cf17 100644 --- a/test/wasm2js/deterministic.2asm.js.opt +++ b/test/wasm2js/deterministic.2asm.js.opt @@ -1,5 +1,6 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -37,8 +38,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/dynamicLibrary.2asm.js b/test/wasm2js/dynamicLibrary.2asm.js index 1824b2b9bc7..2ef6da17714 100644 --- a/test/wasm2js/dynamicLibrary.2asm.js +++ b/test/wasm2js/dynamicLibrary.2asm.js @@ -12,7 +12,8 @@ function Table(ret) { return ret; } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -61,8 +62,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(16777216); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(16777216) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' diff --git a/test/wasm2js/dynamicLibrary.2asm.js.opt b/test/wasm2js/dynamicLibrary.2asm.js.opt index 42af848b6bf..fc6f4af1376 100644 --- a/test/wasm2js/dynamicLibrary.2asm.js.opt +++ b/test/wasm2js/dynamicLibrary.2asm.js.opt @@ -12,7 +12,8 @@ function Table(ret) { return ret; } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -53,8 +54,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(16777216); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(16777216) }; +var bufferView = new Uint8Array(memasmFunc.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' diff --git a/test/wasm2js/emscripten-grow-no.2asm.js b/test/wasm2js/emscripten-grow-no.2asm.js index 96c4c195ca9..0a8862a339b 100644 --- a/test/wasm2js/emscripten-grow-no.2asm.js +++ b/test/wasm2js/emscripten-grow-no.2asm.js @@ -1,5 +1,6 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -79,7 +80,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory.buffer + wasmMemory ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten-grow-no.2asm.js.opt b/test/wasm2js/emscripten-grow-no.2asm.js.opt index 96c4c195ca9..0a8862a339b 100644 --- a/test/wasm2js/emscripten-grow-no.2asm.js.opt +++ b/test/wasm2js/emscripten-grow-no.2asm.js.opt @@ -1,5 +1,6 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -79,7 +80,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory.buffer + wasmMemory ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten-grow-yes.2asm.js b/test/wasm2js/emscripten-grow-yes.2asm.js index 5acd1e0fee9..07492d2ba75 100644 --- a/test/wasm2js/emscripten-grow-yes.2asm.js +++ b/test/wasm2js/emscripten-grow-yes.2asm.js @@ -1,6 +1,8 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; + memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -102,7 +104,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory.buffer + wasmMemory ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten-grow-yes.2asm.js.opt b/test/wasm2js/emscripten-grow-yes.2asm.js.opt index 5acd1e0fee9..07492d2ba75 100644 --- a/test/wasm2js/emscripten-grow-yes.2asm.js.opt +++ b/test/wasm2js/emscripten-grow-yes.2asm.js.opt @@ -1,6 +1,8 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; + memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -102,7 +104,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory.buffer + wasmMemory ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten.2asm.js b/test/wasm2js/emscripten.2asm.js index 5d6e11b8551..81ad7b62140 100644 --- a/test/wasm2js/emscripten.2asm.js +++ b/test/wasm2js/emscripten.2asm.js @@ -1,5 +1,6 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; var FUNCTION_TABLE = env.table; var HEAP8 = new global.Int8Array(buffer); @@ -239,7 +240,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory.buffer + wasmMemory ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten.2asm.js.opt b/test/wasm2js/emscripten.2asm.js.opt index 7cd4868b37c..aed5595fbf2 100644 --- a/test/wasm2js/emscripten.2asm.js.opt +++ b/test/wasm2js/emscripten.2asm.js.opt @@ -1,5 +1,6 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.memory; var FUNCTION_TABLE = env.table; var HEAP8 = new global.Int8Array(buffer); @@ -232,7 +233,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory.buffer + wasmMemory ) } \ No newline at end of file diff --git a/test/wasm2js/endianness.2asm.js b/test/wasm2js/endianness.2asm.js index cf4925f5b17..ffdfd81ec5e 100644 --- a/test/wasm2js/endianness.2asm.js +++ b/test/wasm2js/endianness.2asm.js @@ -30,7 +30,8 @@ import { setTempRet0 } from 'env'; return f32ScratchView[2]; } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -696,8 +697,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/grow-memory-tricky.2asm.js b/test/wasm2js/grow-memory-tricky.2asm.js index 230791c87cc..495007d5eca 100644 --- a/test/wasm2js/grow-memory-tricky.2asm.js +++ b/test/wasm2js/grow-memory-tricky.2asm.js @@ -1,5 +1,6 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -79,8 +80,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/grow-memory-tricky.2asm.js.opt b/test/wasm2js/grow-memory-tricky.2asm.js.opt index 176d1085fc9..9a24642952b 100644 --- a/test/wasm2js/grow-memory-tricky.2asm.js.opt +++ b/test/wasm2js/grow-memory-tricky.2asm.js.opt @@ -1,5 +1,6 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -69,8 +70,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/grow_memory.2asm.js b/test/wasm2js/grow_memory.2asm.js index 5a952950b5b..525339f955a 100644 --- a/test/wasm2js/grow_memory.2asm.js +++ b/test/wasm2js/grow_memory.2asm.js @@ -1,5 +1,6 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -72,8 +73,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/left-to-right.2asm.js b/test/wasm2js/left-to-right.2asm.js index 54a909cef17..bbe29b29151 100644 --- a/test/wasm2js/left-to-right.2asm.js +++ b/test/wasm2js/left-to-right.2asm.js @@ -25,7 +25,8 @@ f32ScratchView[2] = value; } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -2163,8 +2164,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/minified-memory.2asm.js b/test/wasm2js/minified-memory.2asm.js index d7c73a6bb6a..0eda415d16a 100644 --- a/test/wasm2js/minified-memory.2asm.js +++ b/test/wasm2js/minified-memory.2asm.js @@ -1,6 +1,8 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.a; + memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -57,8 +59,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/minified-memory.2asm.js.opt b/test/wasm2js/minified-memory.2asm.js.opt index 1e79d3202d8..a3344748086 100644 --- a/test/wasm2js/minified-memory.2asm.js.opt +++ b/test/wasm2js/minified-memory.2asm.js.opt @@ -1,6 +1,8 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var memory = env.a; + memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -57,8 +59,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/reinterpret_scratch.2asm.js b/test/wasm2js/reinterpret_scratch.2asm.js index 83ad38dc6ed..b3386184e1d 100644 --- a/test/wasm2js/reinterpret_scratch.2asm.js +++ b/test/wasm2js/reinterpret_scratch.2asm.js @@ -17,7 +17,8 @@ f32ScratchView[2] = value; } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -57,8 +58,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/reinterpret_scratch.2asm.js.opt b/test/wasm2js/reinterpret_scratch.2asm.js.opt index 7dd385e0660..01e34cf1ee7 100644 --- a/test/wasm2js/reinterpret_scratch.2asm.js.opt +++ b/test/wasm2js/reinterpret_scratch.2asm.js.opt @@ -13,7 +13,8 @@ f64ScratchView[0] = value; } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -52,8 +53,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/start_func.2asm.js b/test/wasm2js/start_func.2asm.js index c18514dba26..d3d7cb94336 100644 --- a/test/wasm2js/start_func.2asm.js +++ b/test/wasm2js/start_func.2asm.js @@ -1,5 +1,6 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -56,8 +57,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/start_func.2asm.js.opt b/test/wasm2js/start_func.2asm.js.opt index 6ff7c1cbade..6a277526135 100644 --- a/test/wasm2js/start_func.2asm.js.opt +++ b/test/wasm2js/start_func.2asm.js.opt @@ -1,5 +1,6 @@ -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -56,8 +57,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js index 4977610907c..f47a9521eff 100644 --- a/test/wasm2js/traps.2asm.js +++ b/test/wasm2js/traps.2asm.js @@ -1616,7 +1616,8 @@ export var no_dce_i64_trunc_f32_u = retasmFunc.no_dce_i64_trunc_f32_u; export var no_dce_i64_trunc_f64_s = retasmFunc.no_dce_i64_trunc_f64_s; export var no_dce_i64_trunc_f64_u = retasmFunc.no_dce_i64_trunc_f64_u; -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -1757,8 +1758,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/unaligned.2asm.js b/test/wasm2js/unaligned.2asm.js index cb5c661be51..fb65f7e39d6 100644 --- a/test/wasm2js/unaligned.2asm.js +++ b/test/wasm2js/unaligned.2asm.js @@ -30,7 +30,8 @@ import { setTempRet0 } from 'env'; f32ScratchView[2] = value; } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -173,8 +174,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/unaligned.2asm.js.opt b/test/wasm2js/unaligned.2asm.js.opt index 717bfc1a6b5..1d549ce2a70 100644 --- a/test/wasm2js/unaligned.2asm.js.opt +++ b/test/wasm2js/unaligned.2asm.js.opt @@ -26,7 +26,8 @@ import { setTempRet0 } from 'env'; return f32ScratchView[2]; } -function asmFunc(global, env, buffer) { +function asmFunc(global, env, memoryIn) { + var buffer = memoryIn.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -126,8 +127,8 @@ function asmFunc(global, env, buffer) { }; } -var memasmFunc = new ArrayBuffer(65536); -var bufferView = new Uint8Array(memasmFunc); +var memasmFunc = { buffer: new ArrayBuffer(65536) }; +var bufferView = new Uint8Array(memasmFunc.buffer); var retasmFunc = asmFunc({ Math, Int8Array, From 1b7afcc97a57bc3d50a1bc8e13c8fab8d1a3c171 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 30 Sep 2020 16:23:50 -0700 Subject: [PATCH 2/2] revert some parts.. keeping this change simpler --- scripts/test/wasm2js.py | 3 ++ src/wasm2js.h | 47 ++++++++++++-------- test/wasm2js/atomic_fence.2asm.js | 7 ++- test/wasm2js/atomics_32.2asm.js | 7 ++- test/wasm2js/atomics_32.2asm.js.opt | 7 ++- test/wasm2js/bulk-memory.2asm.js | 28 +++++------- test/wasm2js/bulk-memory.2asm.js.opt | 28 +++++------- test/wasm2js/deterministic.2asm.js | 15 +++---- test/wasm2js/deterministic.2asm.js.opt | 15 +++---- test/wasm2js/dynamicLibrary.2asm.js | 15 +++---- test/wasm2js/dynamicLibrary.2asm.js.opt | 15 +++---- test/wasm2js/emscripten-grow-no.2asm.js | 6 +-- test/wasm2js/emscripten-grow-no.2asm.js.opt | 6 +-- test/wasm2js/emscripten-grow-yes.2asm.js | 6 +-- test/wasm2js/emscripten-grow-yes.2asm.js.opt | 6 +-- test/wasm2js/emscripten.2asm.js | 6 +-- test/wasm2js/emscripten.2asm.js.opt | 6 +-- test/wasm2js/endianness.2asm.js | 7 ++- test/wasm2js/grow-memory-tricky.2asm.js | 7 ++- test/wasm2js/grow-memory-tricky.2asm.js.opt | 7 ++- test/wasm2js/grow_memory.2asm.js | 7 ++- test/wasm2js/left-to-right.2asm.js | 7 ++- test/wasm2js/minified-memory.2asm.js | 15 +++---- test/wasm2js/minified-memory.2asm.js.opt | 15 +++---- test/wasm2js/reinterpret_scratch.2asm.js | 7 ++- test/wasm2js/reinterpret_scratch.2asm.js.opt | 7 ++- test/wasm2js/start_func.2asm.js | 7 ++- test/wasm2js/start_func.2asm.js.opt | 7 ++- test/wasm2js/traps.2asm.js | 7 ++- test/wasm2js/unaligned.2asm.js | 7 ++- test/wasm2js/unaligned.2asm.js.opt | 7 ++- 31 files changed, 161 insertions(+), 176 deletions(-) diff --git a/scripts/test/wasm2js.py b/scripts/test/wasm2js.py index 38a2defd75d..11f7011a13a 100644 --- a/scripts/test/wasm2js.py +++ b/scripts/test/wasm2js.py @@ -30,6 +30,9 @@ def check_for_stale_files(): + if shared.options.test_name_filter: + return + # TODO(sbc): Generalize and apply other test suites all_tests = [] for t in tests + spec_tests + wasm2js_tests: diff --git a/src/wasm2js.h b/src/wasm2js.h index 3278d403788..c5297a12ae3 100644 --- a/src/wasm2js.h +++ b/src/wasm2js.h @@ -385,17 +385,8 @@ Ref Wasm2JSBuilder::processWasm(Module* wasm, Name funcName) { ValueBuilder::appendArgumentToFunction(asmFunc, ENV); if (wasm->memory.exists) { - ValueBuilder::appendArgumentToFunction(asmFunc, "memoryIn"); - Ref buf = ValueBuilder::makeVar(); - asmFunc[3]->push_back(buf); - ValueBuilder::appendToVar( - buf, - BUFFER, - ValueBuilder::makeDot(ValueBuilder::makeName("memoryIn"), - ValueBuilder::makeName("buffer"))); - - // add memory import if (wasm->memory.imported()) { + // find memory and buffer in imports Ref theVar = ValueBuilder::makeVar(); asmFunc[3]->push_back(theVar); ValueBuilder::appendToVar( @@ -404,6 +395,15 @@ Ref Wasm2JSBuilder::processWasm(Module* wasm, Name funcName) { ValueBuilder::makeDot(ValueBuilder::makeName(ENV), ValueBuilder::makeName(wasm->memory.base))); + // Assign `buffer = memory.buffer` + Ref buf = ValueBuilder::makeVar(); + asmFunc[3]->push_back(buf); + ValueBuilder::appendToVar( + buf, + BUFFER, + ValueBuilder::makeDot(ValueBuilder::makeName("memory"), + ValueBuilder::makeName("buffer"))); + // If memory is growable, override the imported memory's grow method to // ensure so that when grow is called from the output it works as expected if (wasm->memory.max > wasm->memory.initial) { @@ -414,6 +414,9 @@ Ref Wasm2JSBuilder::processWasm(Module* wasm, Name funcName) { SET, ValueBuilder::makeName(WASM_MEMORY_GROW)))); } + } else { + // find memory as third argument + ValueBuilder::appendArgumentToFunction(asmFunc, BUFFER); } } @@ -2477,7 +2480,7 @@ void Wasm2JSGlue::emitPostEmscripten() { << " 'Math': Math\n" << " },\n" << " asmLibraryArg,\n" - << " wasmMemory\n" + << " wasmMemory.buffer\n" << ")" << "\n" << "\n" @@ -2491,13 +2494,11 @@ void Wasm2JSGlue::emitPostES6() { // // Note that the translation here expects that the lower values of this memory // can be used for conversions, so make sure there's at least one page. - Name memoryName(std::string("mem") + moduleName.str); - if (wasm.memory.exists) { - out << "var " << memoryName.str << " = { buffer: new ArrayBuffer(" - << wasm.memory.initial.addr * Memory::kPageSize << ") };\n"; + out << "var mem" << moduleName.str << " = new ArrayBuffer(" + << wasm.memory.initial.addr * Memory::kPageSize << ");\n"; - emitMemory(std::string(memoryName.str) + ".buffer", + emitMemory(std::string("mem") + moduleName.str, std::string("assign") + moduleName.str, [](std::string globalName) { return globalName; }); } @@ -2529,6 +2530,16 @@ void Wasm2JSGlue::emitPostES6() { out << ",\n " << asmangle(import->base.str); }); + ModuleUtils::iterImportedMemories(wasm, [&](Memory* import) { + // The special helpers are emitted in the glue, see code and comments + // below. + if (ABI::wasm2js::isHelper(import->base)) { + return; + } + out << ",\n " << asmangle(import->base.str) << ": { buffer : mem" + << moduleName.str << " }"; + }); + ModuleUtils::iterImportedTables(wasm, [&](Table* import) { // The special helpers are emitted in the glue, see code and comments // below. @@ -2538,8 +2549,8 @@ void Wasm2JSGlue::emitPostES6() { out << ",\n " << asmangle(import->base.str); }); - if (wasm.memory.exists) { - out << "\n },\n " << memoryName.str << "\n);\n"; + if (wasm.memory.exists && !wasm.memory.imported()) { + out << "\n },\n mem" << moduleName.str << "\n);\n"; } else { out << "\n });\n"; } diff --git a/test/wasm2js/atomic_fence.2asm.js b/test/wasm2js/atomic_fence.2asm.js index eef5ecb4382..5ce7d8ce1c1 100644 --- a/test/wasm2js/atomic_fence.2asm.js +++ b/test/wasm2js/atomic_fence.2asm.js @@ -1,6 +1,5 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -56,8 +55,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(1507328) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(1507328); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/atomics_32.2asm.js b/test/wasm2js/atomics_32.2asm.js index f403267ade0..c01f717060f 100644 --- a/test/wasm2js/atomics_32.2asm.js +++ b/test/wasm2js/atomics_32.2asm.js @@ -67,8 +67,7 @@ var memorySegments = {}; -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -129,8 +128,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(16777216) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(16777216); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' diff --git a/test/wasm2js/atomics_32.2asm.js.opt b/test/wasm2js/atomics_32.2asm.js.opt index 25ff054d92c..516d67aee73 100644 --- a/test/wasm2js/atomics_32.2asm.js.opt +++ b/test/wasm2js/atomics_32.2asm.js.opt @@ -67,8 +67,7 @@ var memorySegments = {}; -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -125,8 +124,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(16777216) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(16777216); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' diff --git a/test/wasm2js/bulk-memory.2asm.js b/test/wasm2js/bulk-memory.2asm.js index ec60394d552..5983db235a8 100644 --- a/test/wasm2js/bulk-memory.2asm.js +++ b/test/wasm2js/bulk-memory.2asm.js @@ -46,8 +46,7 @@ var retasmFunc = asmFunc({ bufferView.fill(value, dest, dest + size); } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -112,8 +111,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, @@ -145,8 +144,7 @@ export var load8_u = retasmFunc.load8_u; bufferView.copyWithin(dest, source, source + size); } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -189,8 +187,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -244,8 +242,7 @@ export var load8_u = retasmFunc.load8_u; var memorySegments = {}; -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -310,8 +307,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -370,8 +367,7 @@ export var load8_u = retasmFunc.load8_u; var memorySegments = {}; -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -442,8 +438,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' diff --git a/test/wasm2js/bulk-memory.2asm.js.opt b/test/wasm2js/bulk-memory.2asm.js.opt index 4da7c754d52..6616ef8f1e5 100644 --- a/test/wasm2js/bulk-memory.2asm.js.opt +++ b/test/wasm2js/bulk-memory.2asm.js.opt @@ -46,8 +46,7 @@ var retasmFunc = asmFunc({ bufferView.fill(value, dest, dest + size); } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -112,8 +111,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, @@ -145,8 +144,7 @@ export var load8_u = retasmFunc.load8_u; bufferView.copyWithin(dest, source, source + size); } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -189,8 +187,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -244,8 +242,7 @@ export var load8_u = retasmFunc.load8_u; var memorySegments = {}; -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -310,8 +307,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -352,8 +349,7 @@ var retasmFunc = asmFunc({ export var init = retasmFunc.init; export var load8_u = retasmFunc.load8_u; -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -418,8 +414,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/deterministic.2asm.js b/test/wasm2js/deterministic.2asm.js index f77cf10990f..9b98a8695b4 100644 --- a/test/wasm2js/deterministic.2asm.js +++ b/test/wasm2js/deterministic.2asm.js @@ -1,7 +1,7 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -39,8 +39,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, @@ -54,8 +54,7 @@ var retasmFunc = asmFunc({ NaN, Infinity }, { - abort: function() { throw new Error('abort'); } - }, - memasmFunc -); + abort: function() { throw new Error('abort'); }, + memory: { buffer : memasmFunc } + }); export var foo = retasmFunc.foo; diff --git a/test/wasm2js/deterministic.2asm.js.opt b/test/wasm2js/deterministic.2asm.js.opt index ef77044cf17..0875a518072 100644 --- a/test/wasm2js/deterministic.2asm.js.opt +++ b/test/wasm2js/deterministic.2asm.js.opt @@ -1,7 +1,7 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -38,8 +38,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, @@ -53,8 +53,7 @@ var retasmFunc = asmFunc({ NaN, Infinity }, { - abort: function() { throw new Error('abort'); } - }, - memasmFunc -); + abort: function() { throw new Error('abort'); }, + memory: { buffer : memasmFunc } + }); export var foo = retasmFunc.foo; diff --git a/test/wasm2js/dynamicLibrary.2asm.js b/test/wasm2js/dynamicLibrary.2asm.js index 2ef6da17714..48057ed9c9b 100644 --- a/test/wasm2js/dynamicLibrary.2asm.js +++ b/test/wasm2js/dynamicLibrary.2asm.js @@ -12,9 +12,9 @@ function Table(ret) { return ret; } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -62,8 +62,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(16777216) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(16777216); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -97,8 +97,7 @@ var retasmFunc = asmFunc({ NaN, Infinity }, { - abort: function() { throw new Error('abort'); } - }, - memasmFunc -); + abort: function() { throw new Error('abort'); }, + memory: { buffer : memasmFunc } + }); export var baz = retasmFunc.baz; diff --git a/test/wasm2js/dynamicLibrary.2asm.js.opt b/test/wasm2js/dynamicLibrary.2asm.js.opt index fc6f4af1376..76ec540d99f 100644 --- a/test/wasm2js/dynamicLibrary.2asm.js.opt +++ b/test/wasm2js/dynamicLibrary.2asm.js.opt @@ -12,9 +12,9 @@ function Table(ret) { return ret; } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -54,8 +54,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(16777216) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(16777216); +var bufferView = new Uint8Array(memasmFunc); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' @@ -89,8 +89,7 @@ var retasmFunc = asmFunc({ NaN, Infinity }, { - abort: function() { throw new Error('abort'); } - }, - memasmFunc -); + abort: function() { throw new Error('abort'); }, + memory: { buffer : memasmFunc } + }); export var baz = retasmFunc.baz; diff --git a/test/wasm2js/emscripten-grow-no.2asm.js b/test/wasm2js/emscripten-grow-no.2asm.js index 0a8862a339b..3b9c8124874 100644 --- a/test/wasm2js/emscripten-grow-no.2asm.js +++ b/test/wasm2js/emscripten-grow-no.2asm.js @@ -1,7 +1,7 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -80,7 +80,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory + wasmMemory.buffer ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten-grow-no.2asm.js.opt b/test/wasm2js/emscripten-grow-no.2asm.js.opt index 0a8862a339b..3b9c8124874 100644 --- a/test/wasm2js/emscripten-grow-no.2asm.js.opt +++ b/test/wasm2js/emscripten-grow-no.2asm.js.opt @@ -1,7 +1,7 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -80,7 +80,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory + wasmMemory.buffer ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten-grow-yes.2asm.js b/test/wasm2js/emscripten-grow-yes.2asm.js index 07492d2ba75..157b5510df8 100644 --- a/test/wasm2js/emscripten-grow-yes.2asm.js +++ b/test/wasm2js/emscripten-grow-yes.2asm.js @@ -1,7 +1,7 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -104,7 +104,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory + wasmMemory.buffer ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten-grow-yes.2asm.js.opt b/test/wasm2js/emscripten-grow-yes.2asm.js.opt index 07492d2ba75..157b5510df8 100644 --- a/test/wasm2js/emscripten-grow-yes.2asm.js.opt +++ b/test/wasm2js/emscripten-grow-yes.2asm.js.opt @@ -1,7 +1,7 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -104,7 +104,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory + wasmMemory.buffer ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten.2asm.js b/test/wasm2js/emscripten.2asm.js index 81ad7b62140..f4169a1482d 100644 --- a/test/wasm2js/emscripten.2asm.js +++ b/test/wasm2js/emscripten.2asm.js @@ -1,7 +1,7 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; var FUNCTION_TABLE = env.table; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -240,7 +240,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory + wasmMemory.buffer ) } \ No newline at end of file diff --git a/test/wasm2js/emscripten.2asm.js.opt b/test/wasm2js/emscripten.2asm.js.opt index aed5595fbf2..8de23758fef 100644 --- a/test/wasm2js/emscripten.2asm.js.opt +++ b/test/wasm2js/emscripten.2asm.js.opt @@ -1,7 +1,7 @@ function instantiate(asmLibraryArg, wasmMemory) { -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.memory; + var buffer = memory.buffer; var FUNCTION_TABLE = env.table; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -233,7 +233,7 @@ return asmFunc({ 'Math': Math }, asmLibraryArg, - wasmMemory + wasmMemory.buffer ) } \ No newline at end of file diff --git a/test/wasm2js/endianness.2asm.js b/test/wasm2js/endianness.2asm.js index ffdfd81ec5e..cf4925f5b17 100644 --- a/test/wasm2js/endianness.2asm.js +++ b/test/wasm2js/endianness.2asm.js @@ -30,8 +30,7 @@ import { setTempRet0 } from 'env'; return f32ScratchView[2]; } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -697,8 +696,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/grow-memory-tricky.2asm.js b/test/wasm2js/grow-memory-tricky.2asm.js index 495007d5eca..230791c87cc 100644 --- a/test/wasm2js/grow-memory-tricky.2asm.js +++ b/test/wasm2js/grow-memory-tricky.2asm.js @@ -1,6 +1,5 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -80,8 +79,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/grow-memory-tricky.2asm.js.opt b/test/wasm2js/grow-memory-tricky.2asm.js.opt index 9a24642952b..176d1085fc9 100644 --- a/test/wasm2js/grow-memory-tricky.2asm.js.opt +++ b/test/wasm2js/grow-memory-tricky.2asm.js.opt @@ -1,6 +1,5 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -70,8 +69,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/grow_memory.2asm.js b/test/wasm2js/grow_memory.2asm.js index 525339f955a..5a952950b5b 100644 --- a/test/wasm2js/grow_memory.2asm.js +++ b/test/wasm2js/grow_memory.2asm.js @@ -1,6 +1,5 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -73,8 +72,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/left-to-right.2asm.js b/test/wasm2js/left-to-right.2asm.js index bbe29b29151..54a909cef17 100644 --- a/test/wasm2js/left-to-right.2asm.js +++ b/test/wasm2js/left-to-right.2asm.js @@ -25,8 +25,7 @@ f32ScratchView[2] = value; } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -2164,8 +2163,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/minified-memory.2asm.js b/test/wasm2js/minified-memory.2asm.js index 0eda415d16a..e9a89166c89 100644 --- a/test/wasm2js/minified-memory.2asm.js +++ b/test/wasm2js/minified-memory.2asm.js @@ -1,7 +1,7 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.a; + var buffer = memory.buffer; memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -59,8 +59,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, @@ -74,8 +74,7 @@ var retasmFunc = asmFunc({ NaN, Infinity }, { - abort: function() { throw new Error('abort'); } - }, - memasmFunc -); + abort: function() { throw new Error('abort'); }, + a: { buffer : memasmFunc } + }); export var foo = retasmFunc.foo; diff --git a/test/wasm2js/minified-memory.2asm.js.opt b/test/wasm2js/minified-memory.2asm.js.opt index a3344748086..2a09422ec6e 100644 --- a/test/wasm2js/minified-memory.2asm.js.opt +++ b/test/wasm2js/minified-memory.2asm.js.opt @@ -1,7 +1,7 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env) { var memory = env.a; + var buffer = memory.buffer; memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -59,8 +59,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, @@ -74,8 +74,7 @@ var retasmFunc = asmFunc({ NaN, Infinity }, { - abort: function() { throw new Error('abort'); } - }, - memasmFunc -); + abort: function() { throw new Error('abort'); }, + a: { buffer : memasmFunc } + }); export var foo = retasmFunc.foo; diff --git a/test/wasm2js/reinterpret_scratch.2asm.js b/test/wasm2js/reinterpret_scratch.2asm.js index b3386184e1d..83ad38dc6ed 100644 --- a/test/wasm2js/reinterpret_scratch.2asm.js +++ b/test/wasm2js/reinterpret_scratch.2asm.js @@ -17,8 +17,7 @@ f32ScratchView[2] = value; } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -58,8 +57,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/reinterpret_scratch.2asm.js.opt b/test/wasm2js/reinterpret_scratch.2asm.js.opt index 01e34cf1ee7..7dd385e0660 100644 --- a/test/wasm2js/reinterpret_scratch.2asm.js.opt +++ b/test/wasm2js/reinterpret_scratch.2asm.js.opt @@ -13,8 +13,7 @@ f64ScratchView[0] = value; } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -53,8 +52,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/start_func.2asm.js b/test/wasm2js/start_func.2asm.js index d3d7cb94336..c18514dba26 100644 --- a/test/wasm2js/start_func.2asm.js +++ b/test/wasm2js/start_func.2asm.js @@ -1,6 +1,5 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -57,8 +56,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/start_func.2asm.js.opt b/test/wasm2js/start_func.2asm.js.opt index 6a277526135..6ff7c1cbade 100644 --- a/test/wasm2js/start_func.2asm.js.opt +++ b/test/wasm2js/start_func.2asm.js.opt @@ -1,6 +1,5 @@ -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -57,8 +56,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js index f47a9521eff..4977610907c 100644 --- a/test/wasm2js/traps.2asm.js +++ b/test/wasm2js/traps.2asm.js @@ -1616,8 +1616,7 @@ export var no_dce_i64_trunc_f32_u = retasmFunc.no_dce_i64_trunc_f32_u; export var no_dce_i64_trunc_f64_s = retasmFunc.no_dce_i64_trunc_f64_s; export var no_dce_i64_trunc_f64_u = retasmFunc.no_dce_i64_trunc_f64_u; -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -1758,8 +1757,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/unaligned.2asm.js b/test/wasm2js/unaligned.2asm.js index fb65f7e39d6..cb5c661be51 100644 --- a/test/wasm2js/unaligned.2asm.js +++ b/test/wasm2js/unaligned.2asm.js @@ -30,8 +30,7 @@ import { setTempRet0 } from 'env'; f32ScratchView[2] = value; } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -174,8 +173,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array, diff --git a/test/wasm2js/unaligned.2asm.js.opt b/test/wasm2js/unaligned.2asm.js.opt index 1d549ce2a70..717bfc1a6b5 100644 --- a/test/wasm2js/unaligned.2asm.js.opt +++ b/test/wasm2js/unaligned.2asm.js.opt @@ -26,8 +26,7 @@ import { setTempRet0 } from 'env'; return f32ScratchView[2]; } -function asmFunc(global, env, memoryIn) { - var buffer = memoryIn.buffer; +function asmFunc(global, env, buffer) { var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); @@ -127,8 +126,8 @@ function asmFunc(global, env, memoryIn) { }; } -var memasmFunc = { buffer: new ArrayBuffer(65536) }; -var bufferView = new Uint8Array(memasmFunc.buffer); +var memasmFunc = new ArrayBuffer(65536); +var bufferView = new Uint8Array(memasmFunc); var retasmFunc = asmFunc({ Math, Int8Array,