diff --git a/src/library_dylink.js b/src/library_dylink.js index b0f672a9578e9..6bfe4f50b168e 100644 --- a/src/library_dylink.js +++ b/src/library_dylink.js @@ -233,8 +233,6 @@ var LibraryDylink = { #endif } else if (typeof value == {{{ POINTER_JS_TYPE }}}) { GOT[symName].value = value; - } else { - err(`unhandled export type for '${symName}': ${typeof value}`); } #if DYLINK_DEBUG == 2 dbg(`updateGOT: after: ${symName} : ${GOT[symName].value} (${value})`); @@ -267,9 +265,8 @@ var LibraryDylink = { continue; } #endif - if (typeof value == 'object') { - // a breaking change in the wasm spec, globals are now objects - // https://github.com/WebAssembly/mutable-global/issues/1 + if (typeof value == 'object' && value.value) { + // For Wasm globals, extract the inner value. value = value.value; } if (typeof value == {{{ POINTER_JS_TYPE }}}) { @@ -315,8 +312,6 @@ var LibraryDylink = { } else if (typeof value == 'bigint') { entry.value = value; #endif - } else { - throw new Error(`bad export type for '${symName}': ${typeof value}`); } } } diff --git a/src/preamble.js b/src/preamble.js index 50db7db23bca3..979c8dae71532 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -154,7 +154,6 @@ assert(typeof Int32Array != 'undefined' && typeof Float64Array !== 'undefined' & #endif #if IMPORTED_MEMORY -// In non-standalone/normal mode, we create the memory here. #include "runtime_init_memory.js" #elif ASSERTIONS // If memory is defined in wasm, the user can't provide it, or set INITIAL_MEMORY diff --git a/test/other/metadce/test_metadce_hello_dylink.exports b/test/other/metadce/test_metadce_hello_dylink.exports index 9aa298858fd18..b986c2c696621 100644 --- a/test/other/metadce/test_metadce_hello_dylink.exports +++ b/test/other/metadce/test_metadce_hello_dylink.exports @@ -6,4 +6,5 @@ dynCall_jiji emscripten_stack_get_current main malloc +memory setThrew diff --git a/test/other/metadce/test_metadce_hello_dylink.gzsize b/test/other/metadce/test_metadce_hello_dylink.gzsize index e5b59778d65dc..832a01a2b02c4 100644 --- a/test/other/metadce/test_metadce_hello_dylink.gzsize +++ b/test/other/metadce/test_metadce_hello_dylink.gzsize @@ -1 +1 @@ -6306 +6216 diff --git a/test/other/metadce/test_metadce_hello_dylink.imports b/test/other/metadce/test_metadce_hello_dylink.imports index c986c46c080b2..b4c00f1988189 100644 --- a/test/other/metadce/test_metadce_hello_dylink.imports +++ b/test/other/metadce/test_metadce_hello_dylink.imports @@ -5,5 +5,4 @@ env.__stack_pointer env.__table_base env._emscripten_memcpy_js env.emscripten_resize_heap -env.memory wasi_snapshot_preview1.fd_write diff --git a/test/other/metadce/test_metadce_hello_dylink.jssize b/test/other/metadce/test_metadce_hello_dylink.jssize index d91a3314c13d6..bf66339ffa479 100644 --- a/test/other/metadce/test_metadce_hello_dylink.jssize +++ b/test/other/metadce/test_metadce_hello_dylink.jssize @@ -1 +1 @@ -13895 +13655 diff --git a/test/other/metadce/test_metadce_hello_dylink.sent b/test/other/metadce/test_metadce_hello_dylink.sent index 01672c0ec979f..b037fc2f0df68 100644 --- a/test/other/metadce/test_metadce_hello_dylink.sent +++ b/test/other/metadce/test_metadce_hello_dylink.sent @@ -6,4 +6,3 @@ __table_base _emscripten_memcpy_js emscripten_resize_heap fd_write -memory diff --git a/tools/link.py b/tools/link.py index e35b0d00808cf..7cf0c72ff82ed 100644 --- a/tools/link.py +++ b/tools/link.py @@ -1408,7 +1408,7 @@ def phase_linker_setup(options, state, newargs): 'removeRunDependency', ] - if settings.SHARED_MEMORY or settings.RELOCATABLE or settings.ASYNCIFY_LAZY_LOAD_CODE: + if settings.SHARED_MEMORY or settings.SIDE_MODULE or settings.ASYNCIFY_LAZY_LOAD_CODE: settings.IMPORTED_MEMORY = 1 set_initial_memory()