diff --git a/ChangeLog.md b/ChangeLog.md index c8aec8d73c0a7..7bbade9d415c2 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -4,7 +4,7 @@ Note that version numbers do not necessarily reflect the amount of changes between versions. A version number reflects a release that is known to pass all tests, and versions may be tagged more or less frequently at different times. -Note that there is *no* ABI compatibility guarantee between versions - the ABI +nNote that there is *no* ABI compatibility guarantee between versions - the ABI may change, so that we can keep improving and optimizing it. The compiler will automatically invalidate system caches when the version number updates, so that libc etc. are rebuilt for you. You should also rebuild object files and @@ -20,6 +20,9 @@ See docs/process.md for more on how version tagging works. 3.1.75 (in development) ----------------------- +- The `WASM_BIGINT` feature has been enabled by default. This has the effect that + Wasm i64 values are passed and returned between Wasm and JS as BigInt values + rather than being split by Binaryen into pairs of Numbers. (#22993) - When using `-sMODULARIZE` we now assert if the factory function is called with the JS `new` keyword. e.g. `a = new Module()` rather than `b = Module()`. This paves the way for marking the function as `async` which does not allow diff --git a/site/source/docs/tools_reference/settings_reference.rst b/site/source/docs/tools_reference/settings_reference.rst index 902920c03c9b4..f89d622dcf579 100644 --- a/site/source/docs/tools_reference/settings_reference.rst +++ b/site/source/docs/tools_reference/settings_reference.rst @@ -2189,7 +2189,7 @@ legalize i64s into pairs of i32s, as the wasm VM will use a BigInt where an i64 is used. If WASM_BIGINT is present, the default minimum supported browser versions will be increased to the min version that supports BigInt. -Default value: false +Default value: true .. _emit_producers_section: diff --git a/src/settings.js b/src/settings.js index 6610dc1e781d2..c838823a12e18 100644 --- a/src/settings.js +++ b/src/settings.js @@ -1498,7 +1498,7 @@ var DYNCALLS = false; // i64 is used. If WASM_BIGINT is present, the default minimum supported browser // versions will be increased to the min version that supports BigInt. // [link] -var WASM_BIGINT = false; +var WASM_BIGINT = true; // WebAssembly defines a "producers section" which compilers and tools can // annotate themselves in, and LLVM emits this by default. diff --git a/src/shell.js b/src/shell.js index 36d9e9a4b042f..f0bd6fba612b4 100644 --- a/src/shell.js +++ b/src/shell.js @@ -34,7 +34,8 @@ var Module = typeof {{{ EXPORT_NAME }}} != 'undefined' ? {{{ EXPORT_NAME }}} : { #endif // USE_CLOSURE_COMPILER #if POLYFILL -#if WASM_BIGINT && MIN_SAFARI_VERSION < 150000 +#if WASM_BIGINT && MIN_SAFARI_VERSION < 140100 +// TODO(https://github.com/emscripten-core/emscripten/issues/23184): Fix this back to 150000 // See https://caniuse.com/mdn-javascript_builtins_bigint64array #include "polyfill/bigint64array.js" #endif diff --git a/test/browser/test_small_js_flags.js.size b/test/browser/test_small_js_flags.js.size index 555bb91567fa6..6502cf0229698 100644 --- a/test/browser/test_small_js_flags.js.size +++ b/test/browser/test_small_js_flags.js.size @@ -1 +1 @@ -4297 +4380 diff --git a/test/code_size/embind_hello_wasm.json b/test/code_size/embind_hello_wasm.json index 9d622aa122fca..c9addb6041924 100644 --- a/test/code_size/embind_hello_wasm.json +++ b/test/code_size/embind_hello_wasm.json @@ -1,10 +1,10 @@ { "a.html": 552, "a.html.gz": 380, - "a.js": 9593, - "a.js.gz": 4230, - "a.wasm": 7615, - "a.wasm.gz": 3471, - "total": 17760, - "total_gz": 8081 + "a.js": 9879, + "a.js.gz": 4288, + "a.wasm": 7580, + "a.wasm.gz": 3449, + "total": 18011, + "total_gz": 8117 } diff --git a/test/code_size/embind_val_wasm.json b/test/code_size/embind_val_wasm.json index 69ed419b496d4..503050a61f0d1 100644 --- a/test/code_size/embind_val_wasm.json +++ b/test/code_size/embind_val_wasm.json @@ -1,10 +1,10 @@ { "a.html": 552, "a.html.gz": 380, - "a.js": 6724, - "a.js.gz": 2900, - "a.wasm": 9528, - "a.wasm.gz": 4896, - "total": 16804, - "total_gz": 8176 + "a.js": 7153, + "a.js.gz": 3042, + "a.wasm": 9493, + "a.wasm.gz": 4872, + "total": 17198, + "total_gz": 8294 } diff --git a/test/common.py b/test/common.py index 7f5844adac982..87111f5bd3ebf 100644 --- a/test/common.py +++ b/test/common.py @@ -37,7 +37,7 @@ from tools.shared import get_canonical_temp_dir, path_from_root from tools.utils import MACOS, WINDOWS, read_file, read_binary, write_binary, exit_with_error from tools.settings import COMPILE_TIME_SETTINGS -from tools import shared, line_endings, building, config, utils +from tools import shared, feature_matrix, line_endings, building, config, utils logger = logging.getLogger('common') @@ -1164,6 +1164,8 @@ def setUp(self): if node_version < emcc_min_node_version: self.emcc_args += building.get_emcc_node_flags(node_version) self.emcc_args.append('-Wno-transpile') + if node_version[0] < feature_matrix.min_browser_versions[feature_matrix.Feature.JS_BIGINT_INTEGRATION]['node'] / 10000: + self.emcc_args.append('-sWASM_BIGINT=0') self.v8_args = ['--wasm-staging'] self.env = {} diff --git a/test/other/codesize/test_codesize_cxx_ctors1.exports b/test/other/codesize/test_codesize_cxx_ctors1.exports index 6fc972ce0131f..e8e129078e743 100644 --- a/test/other/codesize/test_codesize_cxx_ctors1.exports +++ b/test/other/codesize/test_codesize_cxx_ctors1.exports @@ -2,11 +2,6 @@ __indirect_function_table __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore -dynCall_iiiiiijj -dynCall_iiiiij -dynCall_iiiiijj -dynCall_jiji -dynCall_viijii emscripten_stack_get_current main memory diff --git a/test/other/codesize/test_codesize_cxx_ctors1.gzsize b/test/other/codesize/test_codesize_cxx_ctors1.gzsize index 9bef9b47fbd94..629d814f19953 100644 --- a/test/other/codesize/test_codesize_cxx_ctors1.gzsize +++ b/test/other/codesize/test_codesize_cxx_ctors1.gzsize @@ -1 +1 @@ -8502 +8352 diff --git a/test/other/codesize/test_codesize_cxx_ctors1.jssize b/test/other/codesize/test_codesize_cxx_ctors1.jssize index 942a20eff6ed2..a22508fe1954b 100644 --- a/test/other/codesize/test_codesize_cxx_ctors1.jssize +++ b/test/other/codesize/test_codesize_cxx_ctors1.jssize @@ -1 +1 @@ -20867 +20347 diff --git a/test/other/codesize/test_codesize_cxx_ctors1.size b/test/other/codesize/test_codesize_cxx_ctors1.size index 125071c29e4ba..467ff31c3f2cd 100644 --- a/test/other/codesize/test_codesize_cxx_ctors1.size +++ b/test/other/codesize/test_codesize_cxx_ctors1.size @@ -1 +1 @@ -129231 +128974 diff --git a/test/other/codesize/test_codesize_cxx_ctors2.exports b/test/other/codesize/test_codesize_cxx_ctors2.exports index fdac55c82b471..5629d338fd12b 100644 --- a/test/other/codesize/test_codesize_cxx_ctors2.exports +++ b/test/other/codesize/test_codesize_cxx_ctors2.exports @@ -1,11 +1,6 @@ __indirect_function_table _emscripten_stack_alloc _emscripten_stack_restore -dynCall_iiiiiijj -dynCall_iiiiij -dynCall_iiiiijj -dynCall_jiji -dynCall_viijii emscripten_stack_get_current main memory diff --git a/test/other/codesize/test_codesize_cxx_ctors2.gzsize b/test/other/codesize/test_codesize_cxx_ctors2.gzsize index 7128aacdbb82c..66543c9213fe0 100644 --- a/test/other/codesize/test_codesize_cxx_ctors2.gzsize +++ b/test/other/codesize/test_codesize_cxx_ctors2.gzsize @@ -1 +1 @@ -8486 +8336 diff --git a/test/other/codesize/test_codesize_cxx_ctors2.jssize b/test/other/codesize/test_codesize_cxx_ctors2.jssize index 00c53f634409a..ee93d493df28c 100644 --- a/test/other/codesize/test_codesize_cxx_ctors2.jssize +++ b/test/other/codesize/test_codesize_cxx_ctors2.jssize @@ -1 +1 @@ -20835 +20315 diff --git a/test/other/codesize/test_codesize_cxx_ctors2.size b/test/other/codesize/test_codesize_cxx_ctors2.size index 580ebc503462f..5151c7d5ae032 100644 --- a/test/other/codesize/test_codesize_cxx_ctors2.size +++ b/test/other/codesize/test_codesize_cxx_ctors2.size @@ -1 +1 @@ -128680 +128423 diff --git a/test/other/codesize/test_codesize_cxx_except.exports b/test/other/codesize/test_codesize_cxx_except.exports index b6247248c84b6..4facc660ec841 100644 --- a/test/other/codesize/test_codesize_cxx_except.exports +++ b/test/other/codesize/test_codesize_cxx_except.exports @@ -8,12 +8,6 @@ __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore _emscripten_tempret_set -dynCall_iiiiiijj -dynCall_iiiiij -dynCall_iiiiijj -dynCall_jiiii -dynCall_jiji -dynCall_viijii emscripten_stack_get_current main memory diff --git a/test/other/codesize/test_codesize_cxx_except.gzsize b/test/other/codesize/test_codesize_cxx_except.gzsize index 938002e8fe4a0..1e8ce7e708846 100644 --- a/test/other/codesize/test_codesize_cxx_except.gzsize +++ b/test/other/codesize/test_codesize_cxx_except.gzsize @@ -1 +1 @@ -9533 +9358 diff --git a/test/other/codesize/test_codesize_cxx_except.jssize b/test/other/codesize/test_codesize_cxx_except.jssize index 95dd8cc2f81df..108fb27854780 100644 --- a/test/other/codesize/test_codesize_cxx_except.jssize +++ b/test/other/codesize/test_codesize_cxx_except.jssize @@ -1 +1 @@ -24712 +24116 diff --git a/test/other/codesize/test_codesize_cxx_except.size b/test/other/codesize/test_codesize_cxx_except.size index 5563f8a875e81..7a6716bb2a43a 100644 --- a/test/other/codesize/test_codesize_cxx_except.size +++ b/test/other/codesize/test_codesize_cxx_except.size @@ -1 +1 @@ -171361 +171008 diff --git a/test/other/codesize/test_codesize_cxx_except_wasm.exports b/test/other/codesize/test_codesize_cxx_except_wasm.exports index 5555bb2a116cb..85bf5bc4006e4 100644 --- a/test/other/codesize/test_codesize_cxx_except_wasm.exports +++ b/test/other/codesize/test_codesize_cxx_except_wasm.exports @@ -2,10 +2,5 @@ __indirect_function_table __trap __wasm_call_ctors _emscripten_stack_alloc -dynCall_iiiiiijj -dynCall_iiiiij -dynCall_iiiiijj -dynCall_jiji -dynCall_viijii main memory diff --git a/test/other/codesize/test_codesize_cxx_except_wasm.gzsize b/test/other/codesize/test_codesize_cxx_except_wasm.gzsize index 4b2de216d1132..f14ddc132870a 100644 --- a/test/other/codesize/test_codesize_cxx_except_wasm.gzsize +++ b/test/other/codesize/test_codesize_cxx_except_wasm.gzsize @@ -1 +1 @@ -8464 +8321 diff --git a/test/other/codesize/test_codesize_cxx_except_wasm.jssize b/test/other/codesize/test_codesize_cxx_except_wasm.jssize index 57438dfc4bcaf..b4fb6fa3b6ed0 100644 --- a/test/other/codesize/test_codesize_cxx_except_wasm.jssize +++ b/test/other/codesize/test_codesize_cxx_except_wasm.jssize @@ -1 +1 @@ -20760 +20240 diff --git a/test/other/codesize/test_codesize_cxx_except_wasm.size b/test/other/codesize/test_codesize_cxx_except_wasm.size index bfe937c06fe72..ccdf567408898 100644 --- a/test/other/codesize/test_codesize_cxx_except_wasm.size +++ b/test/other/codesize/test_codesize_cxx_except_wasm.size @@ -1 +1 @@ -142481 +142223 diff --git a/test/other/codesize/test_codesize_cxx_except_wasm_exnref.exports b/test/other/codesize/test_codesize_cxx_except_wasm_exnref.exports index 5555bb2a116cb..85bf5bc4006e4 100644 --- a/test/other/codesize/test_codesize_cxx_except_wasm_exnref.exports +++ b/test/other/codesize/test_codesize_cxx_except_wasm_exnref.exports @@ -2,10 +2,5 @@ __indirect_function_table __trap __wasm_call_ctors _emscripten_stack_alloc -dynCall_iiiiiijj -dynCall_iiiiij -dynCall_iiiiijj -dynCall_jiji -dynCall_viijii main memory diff --git a/test/other/codesize/test_codesize_cxx_except_wasm_exnref.gzsize b/test/other/codesize/test_codesize_cxx_except_wasm_exnref.gzsize index 4b2de216d1132..f14ddc132870a 100644 --- a/test/other/codesize/test_codesize_cxx_except_wasm_exnref.gzsize +++ b/test/other/codesize/test_codesize_cxx_except_wasm_exnref.gzsize @@ -1 +1 @@ -8464 +8321 diff --git a/test/other/codesize/test_codesize_cxx_except_wasm_exnref.jssize b/test/other/codesize/test_codesize_cxx_except_wasm_exnref.jssize index 57438dfc4bcaf..b4fb6fa3b6ed0 100644 --- a/test/other/codesize/test_codesize_cxx_except_wasm_exnref.jssize +++ b/test/other/codesize/test_codesize_cxx_except_wasm_exnref.jssize @@ -1 +1 @@ -20760 +20240 diff --git a/test/other/codesize/test_codesize_cxx_except_wasm_exnref.size b/test/other/codesize/test_codesize_cxx_except_wasm_exnref.size index 27c1d7a0535ff..9fd3641491ec2 100644 --- a/test/other/codesize/test_codesize_cxx_except_wasm_exnref.size +++ b/test/other/codesize/test_codesize_cxx_except_wasm_exnref.size @@ -1 +1 @@ -145068 +144810 diff --git a/test/other/codesize/test_codesize_cxx_lto.gzsize b/test/other/codesize/test_codesize_cxx_lto.gzsize index 925f351390343..7947190fcc750 100644 --- a/test/other/codesize/test_codesize_cxx_lto.gzsize +++ b/test/other/codesize/test_codesize_cxx_lto.gzsize @@ -1 +1 @@ -8413 +8348 diff --git a/test/other/codesize/test_codesize_cxx_lto.imports b/test/other/codesize/test_codesize_cxx_lto.imports index e03564194ed36..9277703b69e4a 100644 --- a/test/other/codesize/test_codesize_cxx_lto.imports +++ b/test/other/codesize/test_codesize_cxx_lto.imports @@ -1,11 +1,11 @@ -a (fd_seek) -b (emscripten_resize_heap) -c (_tzset_js) -d (_setitimer_js) -e (_emscripten_runtime_keepalive_clear) -f (_abort_js) -g (proc_exit) -h (fd_write) +a (emscripten_resize_heap) +b (_tzset_js) +c (_setitimer_js) +d (_emscripten_runtime_keepalive_clear) +e (_abort_js) +f (proc_exit) +g (fd_write) +h (fd_seek) i (fd_read) j (fd_close) k (environ_sizes_get) diff --git a/test/other/codesize/test_codesize_cxx_lto.jssize b/test/other/codesize/test_codesize_cxx_lto.jssize index 5d9ea2f2da2dc..6525ff13db521 100644 --- a/test/other/codesize/test_codesize_cxx_lto.jssize +++ b/test/other/codesize/test_codesize_cxx_lto.jssize @@ -1 +1 @@ -20451 +20371 diff --git a/test/other/codesize/test_codesize_cxx_lto.sent b/test/other/codesize/test_codesize_cxx_lto.sent index e03564194ed36..9277703b69e4a 100644 --- a/test/other/codesize/test_codesize_cxx_lto.sent +++ b/test/other/codesize/test_codesize_cxx_lto.sent @@ -1,11 +1,11 @@ -a (fd_seek) -b (emscripten_resize_heap) -c (_tzset_js) -d (_setitimer_js) -e (_emscripten_runtime_keepalive_clear) -f (_abort_js) -g (proc_exit) -h (fd_write) +a (emscripten_resize_heap) +b (_tzset_js) +c (_setitimer_js) +d (_emscripten_runtime_keepalive_clear) +e (_abort_js) +f (proc_exit) +g (fd_write) +h (fd_seek) i (fd_read) j (fd_close) k (environ_sizes_get) diff --git a/test/other/codesize/test_codesize_cxx_lto.size b/test/other/codesize/test_codesize_cxx_lto.size index 36e2c6d3c0149..b0dea2b9e570d 100644 --- a/test/other/codesize/test_codesize_cxx_lto.size +++ b/test/other/codesize/test_codesize_cxx_lto.size @@ -1 +1 @@ -121923 +121924 diff --git a/test/other/codesize/test_codesize_cxx_mangle.exports b/test/other/codesize/test_codesize_cxx_mangle.exports index 973868ec0db1e..3dae240b66848 100644 --- a/test/other/codesize/test_codesize_cxx_mangle.exports +++ b/test/other/codesize/test_codesize_cxx_mangle.exports @@ -9,12 +9,6 @@ __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore _emscripten_tempret_set -dynCall_iiiiiijj -dynCall_iiiiij -dynCall_iiiiijj -dynCall_jiiii -dynCall_jiji -dynCall_viijii emscripten_stack_get_current free main diff --git a/test/other/codesize/test_codesize_cxx_mangle.gzsize b/test/other/codesize/test_codesize_cxx_mangle.gzsize index 3b72d74c9a260..be24a385bb8fd 100644 --- a/test/other/codesize/test_codesize_cxx_mangle.gzsize +++ b/test/other/codesize/test_codesize_cxx_mangle.gzsize @@ -1 +1 @@ -9538 +9361 diff --git a/test/other/codesize/test_codesize_cxx_mangle.jssize b/test/other/codesize/test_codesize_cxx_mangle.jssize index 95dd8cc2f81df..108fb27854780 100644 --- a/test/other/codesize/test_codesize_cxx_mangle.jssize +++ b/test/other/codesize/test_codesize_cxx_mangle.jssize @@ -1 +1 @@ -24712 +24116 diff --git a/test/other/codesize/test_codesize_cxx_mangle.size b/test/other/codesize/test_codesize_cxx_mangle.size index fc07430882075..e1078b8c5934e 100644 --- a/test/other/codesize/test_codesize_cxx_mangle.size +++ b/test/other/codesize/test_codesize_cxx_mangle.size @@ -1 +1 @@ -232870 +232517 diff --git a/test/other/codesize/test_codesize_cxx_noexcept.exports b/test/other/codesize/test_codesize_cxx_noexcept.exports index 6fc972ce0131f..e8e129078e743 100644 --- a/test/other/codesize/test_codesize_cxx_noexcept.exports +++ b/test/other/codesize/test_codesize_cxx_noexcept.exports @@ -2,11 +2,6 @@ __indirect_function_table __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore -dynCall_iiiiiijj -dynCall_iiiiij -dynCall_iiiiijj -dynCall_jiji -dynCall_viijii emscripten_stack_get_current main memory diff --git a/test/other/codesize/test_codesize_cxx_noexcept.gzsize b/test/other/codesize/test_codesize_cxx_noexcept.gzsize index 9bef9b47fbd94..629d814f19953 100644 --- a/test/other/codesize/test_codesize_cxx_noexcept.gzsize +++ b/test/other/codesize/test_codesize_cxx_noexcept.gzsize @@ -1 +1 @@ -8502 +8352 diff --git a/test/other/codesize/test_codesize_cxx_noexcept.jssize b/test/other/codesize/test_codesize_cxx_noexcept.jssize index 942a20eff6ed2..a22508fe1954b 100644 --- a/test/other/codesize/test_codesize_cxx_noexcept.jssize +++ b/test/other/codesize/test_codesize_cxx_noexcept.jssize @@ -1 +1 @@ -20867 +20347 diff --git a/test/other/codesize/test_codesize_cxx_noexcept.size b/test/other/codesize/test_codesize_cxx_noexcept.size index e1072af55a243..232be2fc5f578 100644 --- a/test/other/codesize/test_codesize_cxx_noexcept.size +++ b/test/other/codesize/test_codesize_cxx_noexcept.size @@ -1 +1 @@ -132038 +131781 diff --git a/test/other/codesize/test_codesize_cxx_wasmfs.exports b/test/other/codesize/test_codesize_cxx_wasmfs.exports index 748b987551d8c..e8e129078e743 100644 --- a/test/other/codesize/test_codesize_cxx_wasmfs.exports +++ b/test/other/codesize/test_codesize_cxx_wasmfs.exports @@ -2,14 +2,6 @@ __indirect_function_table __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore -dynCall_iiiiiijj -dynCall_iiiiij -dynCall_iiiiijj -dynCall_iiiij -dynCall_iij -dynCall_ji -dynCall_jiji -dynCall_viijii emscripten_stack_get_current main memory diff --git a/test/other/codesize/test_codesize_cxx_wasmfs.gzsize b/test/other/codesize/test_codesize_cxx_wasmfs.gzsize index ac5764e2098c7..799c77152539d 100644 --- a/test/other/codesize/test_codesize_cxx_wasmfs.gzsize +++ b/test/other/codesize/test_codesize_cxx_wasmfs.gzsize @@ -1 +1 @@ -3769 +3653 diff --git a/test/other/codesize/test_codesize_cxx_wasmfs.jssize b/test/other/codesize/test_codesize_cxx_wasmfs.jssize index c5bde85823b0f..5e97e16bfa535 100644 --- a/test/other/codesize/test_codesize_cxx_wasmfs.jssize +++ b/test/other/codesize/test_codesize_cxx_wasmfs.jssize @@ -1 +1 @@ -8493 +7914 diff --git a/test/other/codesize/test_codesize_cxx_wasmfs.size b/test/other/codesize/test_codesize_cxx_wasmfs.size index 6661bc61e54c3..8c558ef5ce85b 100644 --- a/test/other/codesize/test_codesize_cxx_wasmfs.size +++ b/test/other/codesize/test_codesize_cxx_wasmfs.size @@ -1 +1 @@ -169290 +168928 diff --git a/test/other/codesize/test_codesize_files_js_fs.gzsize b/test/other/codesize/test_codesize_files_js_fs.gzsize index 68d4bb005ee13..a6589474f60cb 100644 --- a/test/other/codesize/test_codesize_files_js_fs.gzsize +++ b/test/other/codesize/test_codesize_files_js_fs.gzsize @@ -1 +1 @@ -7638 +7656 diff --git a/test/other/codesize/test_codesize_files_js_fs.jssize b/test/other/codesize/test_codesize_files_js_fs.jssize index 96e750c1ec4af..bf4d7a5e763f4 100644 --- a/test/other/codesize/test_codesize_files_js_fs.jssize +++ b/test/other/codesize/test_codesize_files_js_fs.jssize @@ -1 +1 @@ -18780 +18842 diff --git a/test/other/codesize/test_codesize_files_wasmfs.gzsize b/test/other/codesize/test_codesize_files_wasmfs.gzsize index f7374e5edea7f..a17ea6fb4828b 100644 --- a/test/other/codesize/test_codesize_files_wasmfs.gzsize +++ b/test/other/codesize/test_codesize_files_wasmfs.gzsize @@ -1 +1 @@ -2866 +2882 diff --git a/test/other/codesize/test_codesize_files_wasmfs.jssize b/test/other/codesize/test_codesize_files_wasmfs.jssize index c98f921104b33..2c55bb009ea6c 100644 --- a/test/other/codesize/test_codesize_files_wasmfs.jssize +++ b/test/other/codesize/test_codesize_files_wasmfs.jssize @@ -1 +1 @@ -6140 +6202 diff --git a/test/other/codesize/test_codesize_hello_O0.exports b/test/other/codesize/test_codesize_hello_O0.exports index 46f6d0a6df26a..430c7650c243b 100644 --- a/test/other/codesize/test_codesize_hello_O0.exports +++ b/test/other/codesize/test_codesize_hello_O0.exports @@ -2,7 +2,6 @@ __indirect_function_table __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore -dynCall_jiji emscripten_stack_get_base emscripten_stack_get_current emscripten_stack_get_end diff --git a/test/other/codesize/test_codesize_hello_O0.funcs b/test/other/codesize/test_codesize_hello_O0.funcs index 7b3556720ebea..a1ff7c64739d8 100644 --- a/test/other/codesize/test_codesize_hello_O0.funcs +++ b/test/other/codesize/test_codesize_hello_O0.funcs @@ -25,9 +25,6 @@ $__wasi_syscall_ret $__wasm_call_ctors $_emscripten_stack_alloc $_emscripten_stack_restore -$_emscripten_tempret_get -$_emscripten_tempret_set -$dynCall_jiji $emscripten_stack_get_base $emscripten_stack_get_current $emscripten_stack_get_end @@ -42,7 +39,6 @@ $frexp $getint $getpid $init_pthread_self -$legalstub$dynCall_jiji $main $memchr $out diff --git a/test/other/codesize/test_codesize_hello_O0.gzsize b/test/other/codesize/test_codesize_hello_O0.gzsize index 8ca7d7e2dcf2a..42b603432aefe 100644 --- a/test/other/codesize/test_codesize_hello_O0.gzsize +++ b/test/other/codesize/test_codesize_hello_O0.gzsize @@ -1 +1 @@ -8003 +8017 diff --git a/test/other/codesize/test_codesize_hello_O0.jssize b/test/other/codesize/test_codesize_hello_O0.jssize index 1e88f55d68b32..ca3736fbbb012 100644 --- a/test/other/codesize/test_codesize_hello_O0.jssize +++ b/test/other/codesize/test_codesize_hello_O0.jssize @@ -1 +1 @@ -21535 +21597 diff --git a/test/other/codesize/test_codesize_hello_O0.size b/test/other/codesize/test_codesize_hello_O0.size index b55e8eb4cd221..08a458d71f92f 100644 --- a/test/other/codesize/test_codesize_hello_O0.size +++ b/test/other/codesize/test_codesize_hello_O0.size @@ -1 +1 @@ -14531 +15142 diff --git a/test/other/codesize/test_codesize_hello_O1.exports b/test/other/codesize/test_codesize_hello_O1.exports index 4f4b6313b5239..e8e129078e743 100644 --- a/test/other/codesize/test_codesize_hello_O1.exports +++ b/test/other/codesize/test_codesize_hello_O1.exports @@ -2,7 +2,6 @@ __indirect_function_table __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore -dynCall_jiji emscripten_stack_get_current main memory diff --git a/test/other/codesize/test_codesize_hello_O1.funcs b/test/other/codesize/test_codesize_hello_O1.funcs index f5073582b3f40..68623ee907e22 100644 --- a/test/other/codesize/test_codesize_hello_O1.funcs +++ b/test/other/codesize/test_codesize_hello_O1.funcs @@ -13,13 +13,9 @@ $__wasi_syscall_ret $__wasm_call_ctors $_emscripten_stack_alloc $_emscripten_stack_restore -$_emscripten_tempret_get -$_emscripten_tempret_set -$dynCall_jiji $emscripten_stack_get_current $fputs $fwrite -$legalstub$dynCall_jiji $main $puts $strlen diff --git a/test/other/codesize/test_codesize_hello_O1.gzsize b/test/other/codesize/test_codesize_hello_O1.gzsize index c98e88a99e28f..690c09f1c702d 100644 --- a/test/other/codesize/test_codesize_hello_O1.gzsize +++ b/test/other/codesize/test_codesize_hello_O1.gzsize @@ -1 +1 @@ -2713 +2697 diff --git a/test/other/codesize/test_codesize_hello_O1.jssize b/test/other/codesize/test_codesize_hello_O1.jssize index 6fdb8ccd778a3..8d2e9dfdb7ff4 100644 --- a/test/other/codesize/test_codesize_hello_O1.jssize +++ b/test/other/codesize/test_codesize_hello_O1.jssize @@ -1 +1 @@ -6921 +6911 diff --git a/test/other/codesize/test_codesize_hello_O1.size b/test/other/codesize/test_codesize_hello_O1.size index 48c6e93066ff9..1c4c2ded8919d 100644 --- a/test/other/codesize/test_codesize_hello_O1.size +++ b/test/other/codesize/test_codesize_hello_O1.size @@ -1 +1 @@ -2535 +2634 diff --git a/test/other/codesize/test_codesize_hello_O2.exports b/test/other/codesize/test_codesize_hello_O2.exports index 4f4b6313b5239..e8e129078e743 100644 --- a/test/other/codesize/test_codesize_hello_O2.exports +++ b/test/other/codesize/test_codesize_hello_O2.exports @@ -2,7 +2,6 @@ __indirect_function_table __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore -dynCall_jiji emscripten_stack_get_current main memory diff --git a/test/other/codesize/test_codesize_hello_O2.funcs b/test/other/codesize/test_codesize_hello_O2.funcs index a16df54d7de2c..2206a46aa8d98 100644 --- a/test/other/codesize/test_codesize_hello_O2.funcs +++ b/test/other/codesize/test_codesize_hello_O2.funcs @@ -8,5 +8,4 @@ $__wasm_call_ctors $_emscripten_stack_alloc $_emscripten_stack_restore $emscripten_stack_get_current -$legalstub$dynCall_jiji $main diff --git a/test/other/codesize/test_codesize_hello_O2.gzsize b/test/other/codesize/test_codesize_hello_O2.gzsize index cc278bd694d3e..7d945b944dabc 100644 --- a/test/other/codesize/test_codesize_hello_O2.gzsize +++ b/test/other/codesize/test_codesize_hello_O2.gzsize @@ -1 +1 @@ -2369 +2359 diff --git a/test/other/codesize/test_codesize_hello_O2.jssize b/test/other/codesize/test_codesize_hello_O2.jssize index 30162af6fe2dd..11336821115bf 100644 --- a/test/other/codesize/test_codesize_hello_O2.jssize +++ b/test/other/codesize/test_codesize_hello_O2.jssize @@ -1 +1 @@ -4844 +4835 diff --git a/test/other/codesize/test_codesize_hello_O2.size b/test/other/codesize/test_codesize_hello_O2.size index b6ac305674cf9..d644427299908 100644 --- a/test/other/codesize/test_codesize_hello_O2.size +++ b/test/other/codesize/test_codesize_hello_O2.size @@ -1 +1 @@ -2047 +1999 diff --git a/test/other/codesize/test_codesize_hello_O3.gzsize b/test/other/codesize/test_codesize_hello_O3.gzsize index cc6f0ac7ecffd..3e263d2e556cd 100644 --- a/test/other/codesize/test_codesize_hello_O3.gzsize +++ b/test/other/codesize/test_codesize_hello_O3.gzsize @@ -1 +1 @@ -2283 +2298 diff --git a/test/other/codesize/test_codesize_hello_O3.jssize b/test/other/codesize/test_codesize_hello_O3.jssize index 9bce5583b99b7..c6a2b270f3b7e 100644 --- a/test/other/codesize/test_codesize_hello_O3.jssize +++ b/test/other/codesize/test_codesize_hello_O3.jssize @@ -1 +1 @@ -4695 +4757 diff --git a/test/other/codesize/test_codesize_hello_Os.gzsize b/test/other/codesize/test_codesize_hello_Os.gzsize index cc6f0ac7ecffd..3e263d2e556cd 100644 --- a/test/other/codesize/test_codesize_hello_Os.gzsize +++ b/test/other/codesize/test_codesize_hello_Os.gzsize @@ -1 +1 @@ -2283 +2298 diff --git a/test/other/codesize/test_codesize_hello_Os.jssize b/test/other/codesize/test_codesize_hello_Os.jssize index 9bce5583b99b7..c6a2b270f3b7e 100644 --- a/test/other/codesize/test_codesize_hello_Os.jssize +++ b/test/other/codesize/test_codesize_hello_Os.jssize @@ -1 +1 @@ -4695 +4757 diff --git a/test/other/codesize/test_codesize_hello_Oz.gzsize b/test/other/codesize/test_codesize_hello_Oz.gzsize index 42752c3ef1f12..9294c7754fde1 100644 --- a/test/other/codesize/test_codesize_hello_Oz.gzsize +++ b/test/other/codesize/test_codesize_hello_Oz.gzsize @@ -1 +1 @@ -2265 +2281 diff --git a/test/other/codesize/test_codesize_hello_Oz.jssize b/test/other/codesize/test_codesize_hello_Oz.jssize index 77d471ad303a9..65e5941a842c5 100644 --- a/test/other/codesize/test_codesize_hello_Oz.jssize +++ b/test/other/codesize/test_codesize_hello_Oz.jssize @@ -1 +1 @@ -4662 +4724 diff --git a/test/other/codesize/test_codesize_hello_dylink.exports b/test/other/codesize/test_codesize_hello_dylink.exports index f1e9af5fcfbf2..99ba54eca755a 100644 --- a/test/other/codesize/test_codesize_hello_dylink.exports +++ b/test/other/codesize/test_codesize_hello_dylink.exports @@ -3,7 +3,6 @@ __wasm_call_ctors _emscripten_stack_alloc _emscripten_stack_restore calloc -dynCall_jiji emscripten_stack_get_current main setThrew diff --git a/test/other/codesize/test_codesize_hello_dylink.funcs b/test/other/codesize/test_codesize_hello_dylink.funcs index 2c23b988a7191..cfe13ffbf5f19 100644 --- a/test/other/codesize/test_codesize_hello_dylink.funcs +++ b/test/other/codesize/test_codesize_hello_dylink.funcs @@ -10,7 +10,6 @@ $_emscripten_stack_alloc $_emscripten_stack_restore $dlcalloc $emscripten_stack_get_current -$legalstub$dynCall_jiji $main $sbrk $setThrew diff --git a/test/other/codesize/test_codesize_hello_dylink.gzsize b/test/other/codesize/test_codesize_hello_dylink.gzsize index 06e102d5685af..416368238e9f1 100644 --- a/test/other/codesize/test_codesize_hello_dylink.gzsize +++ b/test/other/codesize/test_codesize_hello_dylink.gzsize @@ -1 +1 @@ -6150 +6023 diff --git a/test/other/codesize/test_codesize_hello_dylink.jssize b/test/other/codesize/test_codesize_hello_dylink.jssize index 7a9400801574e..3e898f1efeb39 100644 --- a/test/other/codesize/test_codesize_hello_dylink.jssize +++ b/test/other/codesize/test_codesize_hello_dylink.jssize @@ -1 +1 @@ -13609 +13300 diff --git a/test/other/codesize/test_codesize_hello_dylink.size b/test/other/codesize/test_codesize_hello_dylink.size index a30e08ecfada3..e95ec6103f385 100644 --- a/test/other/codesize/test_codesize_hello_dylink.size +++ b/test/other/codesize/test_codesize_hello_dylink.size @@ -1 +1 @@ -9784 +9736 diff --git a/test/other/codesize/test_codesize_hello_export_nothing.gzsize b/test/other/codesize/test_codesize_hello_export_nothing.gzsize index 15475a3d5fc2c..889f56ca7ed18 100644 --- a/test/other/codesize/test_codesize_hello_export_nothing.gzsize +++ b/test/other/codesize/test_codesize_hello_export_nothing.gzsize @@ -1 +1 @@ -1667 +1682 diff --git a/test/other/codesize/test_codesize_hello_export_nothing.jssize b/test/other/codesize/test_codesize_hello_export_nothing.jssize index 5f3db86bbc3ea..ee72a28badb95 100644 --- a/test/other/codesize/test_codesize_hello_export_nothing.jssize +++ b/test/other/codesize/test_codesize_hello_export_nothing.jssize @@ -1 +1 @@ -3575 +3637 diff --git a/test/other/codesize/test_codesize_hello_wasmfs.gzsize b/test/other/codesize/test_codesize_hello_wasmfs.gzsize index cc6f0ac7ecffd..3e263d2e556cd 100644 --- a/test/other/codesize/test_codesize_hello_wasmfs.gzsize +++ b/test/other/codesize/test_codesize_hello_wasmfs.gzsize @@ -1 +1 @@ -2283 +2298 diff --git a/test/other/codesize/test_codesize_hello_wasmfs.jssize b/test/other/codesize/test_codesize_hello_wasmfs.jssize index 9bce5583b99b7..c6a2b270f3b7e 100644 --- a/test/other/codesize/test_codesize_hello_wasmfs.jssize +++ b/test/other/codesize/test_codesize_hello_wasmfs.jssize @@ -1 +1 @@ -4695 +4757 diff --git a/test/other/codesize/test_codesize_libcxxabi_message_O3.gzsize b/test/other/codesize/test_codesize_libcxxabi_message_O3.gzsize index 86fc8f4d80b5a..1ea816877702e 100644 --- a/test/other/codesize/test_codesize_libcxxabi_message_O3.gzsize +++ b/test/other/codesize/test_codesize_libcxxabi_message_O3.gzsize @@ -1 +1 @@ -1862 +1876 diff --git a/test/other/codesize/test_codesize_libcxxabi_message_O3.jssize b/test/other/codesize/test_codesize_libcxxabi_message_O3.jssize index 58f5850ae5fcf..26a4dd33f0015 100644 --- a/test/other/codesize/test_codesize_libcxxabi_message_O3.jssize +++ b/test/other/codesize/test_codesize_libcxxabi_message_O3.jssize @@ -1 +1 @@ -3938 +4000 diff --git a/test/other/codesize/test_codesize_libcxxabi_message_O3_standalone.gzsize b/test/other/codesize/test_codesize_libcxxabi_message_O3_standalone.gzsize index 8bae76d7966a2..a7568adae3387 100644 --- a/test/other/codesize/test_codesize_libcxxabi_message_O3_standalone.gzsize +++ b/test/other/codesize/test_codesize_libcxxabi_message_O3_standalone.gzsize @@ -1 +1 @@ -1899 +1914 diff --git a/test/other/codesize/test_codesize_libcxxabi_message_O3_standalone.jssize b/test/other/codesize/test_codesize_libcxxabi_message_O3_standalone.jssize index 6b2af3f880b0c..965493a318306 100644 --- a/test/other/codesize/test_codesize_libcxxabi_message_O3_standalone.jssize +++ b/test/other/codesize/test_codesize_libcxxabi_message_O3_standalone.jssize @@ -1 +1 @@ -3986 +4048 diff --git a/test/other/codesize/test_codesize_mem_O3.gzsize b/test/other/codesize/test_codesize_mem_O3.gzsize index 2612554b2d3af..ffcd151c41f04 100644 --- a/test/other/codesize/test_codesize_mem_O3.gzsize +++ b/test/other/codesize/test_codesize_mem_O3.gzsize @@ -1 +1 @@ -2313 +2328 diff --git a/test/other/codesize/test_codesize_mem_O3.jssize b/test/other/codesize/test_codesize_mem_O3.jssize index ddeb3cf88bf70..86a2a1bb17b2e 100644 --- a/test/other/codesize/test_codesize_mem_O3.jssize +++ b/test/other/codesize/test_codesize_mem_O3.jssize @@ -1 +1 @@ -4830 +4892 diff --git a/test/other/codesize/test_codesize_mem_O3_grow.gzsize b/test/other/codesize/test_codesize_mem_O3_grow.gzsize index ea5f1c5174ecc..721cbb13b4aee 100644 --- a/test/other/codesize/test_codesize_mem_O3_grow.gzsize +++ b/test/other/codesize/test_codesize_mem_O3_grow.gzsize @@ -1 +1 @@ -2461 +2478 diff --git a/test/other/codesize/test_codesize_mem_O3_grow.jssize b/test/other/codesize/test_codesize_mem_O3_grow.jssize index 581cc8f752a1c..5d539952599b9 100644 --- a/test/other/codesize/test_codesize_mem_O3_grow.jssize +++ b/test/other/codesize/test_codesize_mem_O3_grow.jssize @@ -1 +1 @@ -5115 +5177 diff --git a/test/other/codesize/test_codesize_mem_O3_grow_standalone.gzsize b/test/other/codesize/test_codesize_mem_O3_grow_standalone.gzsize index 5e7c8b88a0264..a7ffd709f6523 100644 --- a/test/other/codesize/test_codesize_mem_O3_grow_standalone.gzsize +++ b/test/other/codesize/test_codesize_mem_O3_grow_standalone.gzsize @@ -1 +1 @@ -2164 +2180 diff --git a/test/other/codesize/test_codesize_mem_O3_grow_standalone.jssize b/test/other/codesize/test_codesize_mem_O3_grow_standalone.jssize index 1f440269b96d4..d6dab2a5d3793 100644 --- a/test/other/codesize/test_codesize_mem_O3_grow_standalone.jssize +++ b/test/other/codesize/test_codesize_mem_O3_grow_standalone.jssize @@ -1 +1 @@ -4523 +4585 diff --git a/test/other/codesize/test_codesize_mem_O3_standalone.gzsize b/test/other/codesize/test_codesize_mem_O3_standalone.gzsize index 10c8452b2c3ab..5cc2201e666e5 100644 --- a/test/other/codesize/test_codesize_mem_O3_standalone.gzsize +++ b/test/other/codesize/test_codesize_mem_O3_standalone.gzsize @@ -1 +1 @@ -2128 +2143 diff --git a/test/other/codesize/test_codesize_mem_O3_standalone.jssize b/test/other/codesize/test_codesize_mem_O3_standalone.jssize index ab5135ded797f..4d4bc2f8db86e 100644 --- a/test/other/codesize/test_codesize_mem_O3_standalone.jssize +++ b/test/other/codesize/test_codesize_mem_O3_standalone.jssize @@ -1 +1 @@ -4455 +4517 diff --git a/test/other/codesize/test_codesize_mem_O3_standalone_lib.gzsize b/test/other/codesize/test_codesize_mem_O3_standalone_lib.gzsize index c34a5b9bd9c60..62a85b862fd04 100644 --- a/test/other/codesize/test_codesize_mem_O3_standalone_lib.gzsize +++ b/test/other/codesize/test_codesize_mem_O3_standalone_lib.gzsize @@ -1 +1 @@ -1885 +1900 diff --git a/test/other/codesize/test_codesize_mem_O3_standalone_lib.jssize b/test/other/codesize/test_codesize_mem_O3_standalone_lib.jssize index 6cd1cb4835d89..61050f20447d0 100644 --- a/test/other/codesize/test_codesize_mem_O3_standalone_lib.jssize +++ b/test/other/codesize/test_codesize_mem_O3_standalone_lib.jssize @@ -1 +1 @@ -3985 +4047 diff --git a/test/other/codesize/test_codesize_mem_O3_standalone_narg.gzsize b/test/other/codesize/test_codesize_mem_O3_standalone_narg.gzsize index 8bae76d7966a2..a7568adae3387 100644 --- a/test/other/codesize/test_codesize_mem_O3_standalone_narg.gzsize +++ b/test/other/codesize/test_codesize_mem_O3_standalone_narg.gzsize @@ -1 +1 @@ -1899 +1914 diff --git a/test/other/codesize/test_codesize_mem_O3_standalone_narg.jssize b/test/other/codesize/test_codesize_mem_O3_standalone_narg.jssize index 6b2af3f880b0c..965493a318306 100644 --- a/test/other/codesize/test_codesize_mem_O3_standalone_narg.jssize +++ b/test/other/codesize/test_codesize_mem_O3_standalone_narg.jssize @@ -1 +1 @@ -3986 +4048 diff --git a/test/other/codesize/test_codesize_mem_O3_standalone_narg_flto.gzsize b/test/other/codesize/test_codesize_mem_O3_standalone_narg_flto.gzsize index 8bae76d7966a2..a7568adae3387 100644 --- a/test/other/codesize/test_codesize_mem_O3_standalone_narg_flto.gzsize +++ b/test/other/codesize/test_codesize_mem_O3_standalone_narg_flto.gzsize @@ -1 +1 @@ -1899 +1914 diff --git a/test/other/codesize/test_codesize_mem_O3_standalone_narg_flto.jssize b/test/other/codesize/test_codesize_mem_O3_standalone_narg_flto.jssize index 6b2af3f880b0c..965493a318306 100644 --- a/test/other/codesize/test_codesize_mem_O3_standalone_narg_flto.jssize +++ b/test/other/codesize/test_codesize_mem_O3_standalone_narg_flto.jssize @@ -1 +1 @@ -3986 +4048 diff --git a/test/other/codesize/test_codesize_minimal_O0.funcs b/test/other/codesize/test_codesize_minimal_O0.funcs index c5eb625aa803c..2b87bdddf10b9 100644 --- a/test/other/codesize/test_codesize_minimal_O0.funcs +++ b/test/other/codesize/test_codesize_minimal_O0.funcs @@ -7,8 +7,6 @@ $__unlockfile $__wasm_call_ctors $_emscripten_stack_alloc $_emscripten_stack_restore -$_emscripten_tempret_get -$_emscripten_tempret_set $add $emscripten_stack_get_base $emscripten_stack_get_current diff --git a/test/other/codesize/test_codesize_minimal_O0.gzsize b/test/other/codesize/test_codesize_minimal_O0.gzsize index 8e86bc3df7942..8793d3d379858 100644 --- a/test/other/codesize/test_codesize_minimal_O0.gzsize +++ b/test/other/codesize/test_codesize_minimal_O0.gzsize @@ -1 +1 @@ -6532 +6554 diff --git a/test/other/codesize/test_codesize_minimal_O0.jssize b/test/other/codesize/test_codesize_minimal_O0.jssize index 3cac79a0fee52..406ffb9d96d4c 100644 --- a/test/other/codesize/test_codesize_minimal_O0.jssize +++ b/test/other/codesize/test_codesize_minimal_O0.jssize @@ -1 +1 @@ -17563 +17637 diff --git a/test/other/codesize/test_codesize_minimal_O0.size b/test/other/codesize/test_codesize_minimal_O0.size index 37cdd416f157a..0141c45d767b7 100644 --- a/test/other/codesize/test_codesize_minimal_O0.size +++ b/test/other/codesize/test_codesize_minimal_O0.size @@ -1 +1 @@ -975 +1104 diff --git a/test/other/codesize/test_codesize_minimal_O1.funcs b/test/other/codesize/test_codesize_minimal_O1.funcs index 891bb2f267dcb..819f7d5bf2b03 100644 --- a/test/other/codesize/test_codesize_minimal_O1.funcs +++ b/test/other/codesize/test_codesize_minimal_O1.funcs @@ -1,7 +1,5 @@ $__wasm_call_ctors $_emscripten_stack_alloc $_emscripten_stack_restore -$_emscripten_tempret_get -$_emscripten_tempret_set $add $emscripten_stack_get_current diff --git a/test/other/codesize/test_codesize_minimal_O1.gzsize b/test/other/codesize/test_codesize_minimal_O1.gzsize index f02edd5f91078..45ff3acb5f914 100644 --- a/test/other/codesize/test_codesize_minimal_O1.gzsize +++ b/test/other/codesize/test_codesize_minimal_O1.gzsize @@ -1 +1 @@ -1520 +1531 diff --git a/test/other/codesize/test_codesize_minimal_O1.jssize b/test/other/codesize/test_codesize_minimal_O1.jssize index 7cca7c9e17bf6..f76268c8b2ac3 100644 --- a/test/other/codesize/test_codesize_minimal_O1.jssize +++ b/test/other/codesize/test_codesize_minimal_O1.jssize @@ -1 +1 @@ -3664 +3713 diff --git a/test/other/codesize/test_codesize_minimal_O1.size b/test/other/codesize/test_codesize_minimal_O1.size index 100000a67875f..8b84f57086ba5 100644 --- a/test/other/codesize/test_codesize_minimal_O1.size +++ b/test/other/codesize/test_codesize_minimal_O1.size @@ -1 +1 @@ -376 +397 diff --git a/test/other/codesize/test_codesize_minimal_O2.gzsize b/test/other/codesize/test_codesize_minimal_O2.gzsize index 5ae289b43f8d7..a3d3785badfdf 100644 --- a/test/other/codesize/test_codesize_minimal_O2.gzsize +++ b/test/other/codesize/test_codesize_minimal_O2.gzsize @@ -1 +1 @@ -1371 +1380 diff --git a/test/other/codesize/test_codesize_minimal_O2.jssize b/test/other/codesize/test_codesize_minimal_O2.jssize index aa57446358cb9..e88d628aa7ae4 100644 --- a/test/other/codesize/test_codesize_minimal_O2.jssize +++ b/test/other/codesize/test_codesize_minimal_O2.jssize @@ -1 +1 @@ -2769 +2812 diff --git a/test/other/codesize/test_codesize_minimal_O3.gzsize b/test/other/codesize/test_codesize_minimal_O3.gzsize index 7345521b14101..cd692fa07fb1d 100644 --- a/test/other/codesize/test_codesize_minimal_O3.gzsize +++ b/test/other/codesize/test_codesize_minimal_O3.gzsize @@ -1 +1 @@ -1336 +1346 diff --git a/test/other/codesize/test_codesize_minimal_O3.jssize b/test/other/codesize/test_codesize_minimal_O3.jssize index 8ef17f6cef8d3..9f876b5c8336c 100644 --- a/test/other/codesize/test_codesize_minimal_O3.jssize +++ b/test/other/codesize/test_codesize_minimal_O3.jssize @@ -1 +1 @@ -2719 +2762 diff --git a/test/other/codesize/test_codesize_minimal_Os.gzsize b/test/other/codesize/test_codesize_minimal_Os.gzsize index 7345521b14101..cd692fa07fb1d 100644 --- a/test/other/codesize/test_codesize_minimal_Os.gzsize +++ b/test/other/codesize/test_codesize_minimal_Os.gzsize @@ -1 +1 @@ -1336 +1346 diff --git a/test/other/codesize/test_codesize_minimal_Os.jssize b/test/other/codesize/test_codesize_minimal_Os.jssize index 8ef17f6cef8d3..9f876b5c8336c 100644 --- a/test/other/codesize/test_codesize_minimal_Os.jssize +++ b/test/other/codesize/test_codesize_minimal_Os.jssize @@ -1 +1 @@ -2719 +2762 diff --git a/test/other/codesize/test_codesize_minimal_Os_mr.gzsize b/test/other/codesize/test_codesize_minimal_Os_mr.gzsize index 6d26270b57e67..4438e30535f75 100644 --- a/test/other/codesize/test_codesize_minimal_Os_mr.gzsize +++ b/test/other/codesize/test_codesize_minimal_Os_mr.gzsize @@ -1 +1 @@ -283 +293 diff --git a/test/other/codesize/test_codesize_minimal_Os_mr.jssize b/test/other/codesize/test_codesize_minimal_Os_mr.jssize index ed4f162019058..5f3bb9813eade 100644 --- a/test/other/codesize/test_codesize_minimal_Os_mr.jssize +++ b/test/other/codesize/test_codesize_minimal_Os_mr.jssize @@ -1 +1 @@ -431 +474 diff --git a/test/other/codesize/test_codesize_minimal_Oz-ctors.gzsize b/test/other/codesize/test_codesize_minimal_Oz-ctors.gzsize index d378cb0bf85c3..a9449958c6a77 100644 --- a/test/other/codesize/test_codesize_minimal_Oz-ctors.gzsize +++ b/test/other/codesize/test_codesize_minimal_Oz-ctors.gzsize @@ -1 +1 @@ -1327 +1338 diff --git a/test/other/codesize/test_codesize_minimal_Oz-ctors.jssize b/test/other/codesize/test_codesize_minimal_Oz-ctors.jssize index f3bb5816bff9b..0e4b8c8ebc97d 100644 --- a/test/other/codesize/test_codesize_minimal_Oz-ctors.jssize +++ b/test/other/codesize/test_codesize_minimal_Oz-ctors.jssize @@ -1 +1 @@ -2704 +2747 diff --git a/test/other/codesize/test_codesize_minimal_Oz.gzsize b/test/other/codesize/test_codesize_minimal_Oz.gzsize index 7345521b14101..cd692fa07fb1d 100644 --- a/test/other/codesize/test_codesize_minimal_Oz.gzsize +++ b/test/other/codesize/test_codesize_minimal_Oz.gzsize @@ -1 +1 @@ -1336 +1346 diff --git a/test/other/codesize/test_codesize_minimal_Oz.jssize b/test/other/codesize/test_codesize_minimal_Oz.jssize index 8ef17f6cef8d3..9f876b5c8336c 100644 --- a/test/other/codesize/test_codesize_minimal_Oz.jssize +++ b/test/other/codesize/test_codesize_minimal_Oz.jssize @@ -1 +1 @@ -2719 +2762 diff --git a/test/other/codesize/test_codesize_minimal_esm.gzsize b/test/other/codesize/test_codesize_minimal_esm.gzsize index 84abd852d3092..9639a4ce0392a 100644 --- a/test/other/codesize/test_codesize_minimal_esm.gzsize +++ b/test/other/codesize/test_codesize_minimal_esm.gzsize @@ -1 +1 @@ -1487 +1496 diff --git a/test/other/codesize/test_codesize_minimal_esm.jssize b/test/other/codesize/test_codesize_minimal_esm.jssize index 1877dcdd8387c..46b6da4851e58 100644 --- a/test/other/codesize/test_codesize_minimal_esm.jssize +++ b/test/other/codesize/test_codesize_minimal_esm.jssize @@ -1 +1 @@ -3095 +3138 diff --git a/test/other/codesize/test_codesize_minimal_pthreads.gzsize b/test/other/codesize/test_codesize_minimal_pthreads.gzsize index 529e64fdfb43e..5255d8eda08aa 100644 --- a/test/other/codesize/test_codesize_minimal_pthreads.gzsize +++ b/test/other/codesize/test_codesize_minimal_pthreads.gzsize @@ -1 +1 @@ -4118 +4184 diff --git a/test/other/codesize/test_codesize_minimal_pthreads.jssize b/test/other/codesize/test_codesize_minimal_pthreads.jssize index e4b77e6fc2965..c9e63f57e5ed2 100644 --- a/test/other/codesize/test_codesize_minimal_pthreads.jssize +++ b/test/other/codesize/test_codesize_minimal_pthreads.jssize @@ -1 +1 @@ -8556 +8711 diff --git a/test/other/codesize/test_codesize_minimal_wasmfs.gzsize b/test/other/codesize/test_codesize_minimal_wasmfs.gzsize index 7345521b14101..cd692fa07fb1d 100644 --- a/test/other/codesize/test_codesize_minimal_wasmfs.gzsize +++ b/test/other/codesize/test_codesize_minimal_wasmfs.gzsize @@ -1 +1 @@ -1336 +1346 diff --git a/test/other/codesize/test_codesize_minimal_wasmfs.jssize b/test/other/codesize/test_codesize_minimal_wasmfs.jssize index 8ef17f6cef8d3..9f876b5c8336c 100644 --- a/test/other/codesize/test_codesize_minimal_wasmfs.jssize +++ b/test/other/codesize/test_codesize_minimal_wasmfs.jssize @@ -1 +1 @@ -2719 +2762 diff --git a/test/other/test_INCOMING_MODULE_JS_API.js.size b/test/other/test_INCOMING_MODULE_JS_API.js.size index 9b8a4c307c7a1..791d82540e015 100644 --- a/test/other/test_INCOMING_MODULE_JS_API.js.size +++ b/test/other/test_INCOMING_MODULE_JS_API.js.size @@ -1 +1 @@ -3710 +3772 diff --git a/test/other/test_unoptimized_code_size.js.size b/test/other/test_unoptimized_code_size.js.size index 6f75fa3a9a413..6defabfd2bdbe 100644 --- a/test/other/test_unoptimized_code_size.js.size +++ b/test/other/test_unoptimized_code_size.js.size @@ -1 +1 @@ -53709 +53866 diff --git a/test/other/test_unoptimized_code_size.wasm.size b/test/other/test_unoptimized_code_size.wasm.size index b55e8eb4cd221..08a458d71f92f 100644 --- a/test/other/test_unoptimized_code_size.wasm.size +++ b/test/other/test_unoptimized_code_size.wasm.size @@ -1 +1 @@ -14531 +15142 diff --git a/test/other/test_unoptimized_code_size_no_asserts.js.size b/test/other/test_unoptimized_code_size_no_asserts.js.size index e55af0c20aeb7..a1bca43a18bc5 100644 --- a/test/other/test_unoptimized_code_size_no_asserts.js.size +++ b/test/other/test_unoptimized_code_size_no_asserts.js.size @@ -1 +1 @@ -29018 +29065 diff --git a/test/other/test_unoptimized_code_size_no_asserts.wasm.size b/test/other/test_unoptimized_code_size_no_asserts.wasm.size index a65dc9b14619a..c343caa8e2659 100644 --- a/test/other/test_unoptimized_code_size_no_asserts.wasm.size +++ b/test/other/test_unoptimized_code_size_no_asserts.wasm.size @@ -1 +1 @@ -11724 +12223 diff --git a/test/other/test_unoptimized_code_size_strict.js.size b/test/other/test_unoptimized_code_size_strict.js.size index ca6f382d48289..2bc64bf3c0783 100644 --- a/test/other/test_unoptimized_code_size_strict.js.size +++ b/test/other/test_unoptimized_code_size_strict.js.size @@ -1 +1 @@ -52531 +52649 diff --git a/test/other/test_unoptimized_code_size_strict.wasm.size b/test/other/test_unoptimized_code_size_strict.wasm.size index b55e8eb4cd221..08a458d71f92f 100644 --- a/test/other/test_unoptimized_code_size_strict.wasm.size +++ b/test/other/test_unoptimized_code_size_strict.wasm.size @@ -1 +1 @@ -14531 +15142 diff --git a/test/return64bit/testbind.js b/test/return64bit/testbind.js index 9ca30d0d18977..cd21d62a82967 100644 --- a/test/return64bit/testbind.js +++ b/test/return64bit/testbind.js @@ -4,14 +4,18 @@ // returned via the accessor method getTempRet0() Module['runtest'] = function() { - var low = _test_return64(0x11223344, 0xaabbccdd); - var high = getTempRet0(); + // Use eval to create BigInt, as no support for Xn notation yet in JS + // optimizer. + var bigint = _test_return64(eval('0xaabbccdd11223344n')); + var low = Number(bigint & 0xffffffffn); + var high = Number(bigint >> 32n); console.log("low = " + low); console.log("high = " + high); var ptr = _get_func_ptr(); - low = dynCall_jj(ptr, 0x12345678, 0xabcdef19); - high = getTempRet0(); + bigint = dynCall('jj', ptr, [eval('0xabcdef1912345678n')]); + low = Number(bigint & 0xffffffffn); + high = Number(bigint >> 32n); console.log("low = " + low); console.log("high = " + high); }; diff --git a/test/return64bit/testbind_bigint.js b/test/return64bit/testbind_nobigint.js similarity index 57% rename from test/return64bit/testbind_bigint.js rename to test/return64bit/testbind_nobigint.js index cd21d62a82967..9ca30d0d18977 100644 --- a/test/return64bit/testbind_bigint.js +++ b/test/return64bit/testbind_nobigint.js @@ -4,18 +4,14 @@ // returned via the accessor method getTempRet0() Module['runtest'] = function() { - // Use eval to create BigInt, as no support for Xn notation yet in JS - // optimizer. - var bigint = _test_return64(eval('0xaabbccdd11223344n')); - var low = Number(bigint & 0xffffffffn); - var high = Number(bigint >> 32n); + var low = _test_return64(0x11223344, 0xaabbccdd); + var high = getTempRet0(); console.log("low = " + low); console.log("high = " + high); var ptr = _get_func_ptr(); - bigint = dynCall('jj', ptr, [eval('0xabcdef1912345678n')]); - low = Number(bigint & 0xffffffffn); - high = Number(bigint >> 32n); + low = dynCall_jj(ptr, 0x12345678, 0xabcdef19); + high = getTempRet0(); console.log("low = " + low); console.log("high = " + high); }; diff --git a/test/test_core.py b/test/test_core.py index c063ef74a561e..28d53550518d1 100644 --- a/test/test_core.py +++ b/test/test_core.py @@ -1934,12 +1934,10 @@ def test_em_js(self, args, force_c): self.do_core_test('test_em_js.cpp', force_c=force_c) self.assertContained("no args returning int", read_file('test_em_js.js')) - @no_wasm2js('WASM_BIGINT is not compatible with wasm2js') + @no_wasm2js('test depends on WASM_BIGINT which is not compatible with wasm2js') def test_em_js_i64(self): - err = self.expect_fail([EMCC, '-Werror', test_file('core/test_em_js_i64.c')]) + err = self.expect_fail([EMCC, '-Werror', '-sWASM_BIGINT=0', test_file('core/test_em_js_i64.c')]) self.assertContained('emcc: error: using 64-bit arguments in EM_JS function without WASM_BIGINT is not yet fully supported: `foo`', err) - - self.set_setting('WASM_BIGINT') self.node_args += shared.node_bigint_flags(self.get_nodejs()) self.do_core_test('test_em_js_i64.c') @@ -6927,7 +6925,7 @@ def test_EXPORTED_RUNTIME_METHODS(self): def test_dyncall_specific(self, *args): if self.get_setting('MEMORY64'): self.skipTest('not compatible with MEMORY64') - if self.get_setting('WASM_BIGINT'): + if self.get_setting('WASM_BIGINT') != 0 and not self.is_wasm2js(): # define DYNCALLS because this test does test calling them directly, and # in WASM_BIGINT mode we do not enable them by default (since we can do # more without them - we don't need to legalize) diff --git a/test/test_other.py b/test/test_other.py index 17fd201531c02..2642b9aafd82c 100644 --- a/test/test_other.py +++ b/test/test_other.py @@ -2974,7 +2974,7 @@ def test_emcc_debug_files(self, opt): self.assertFalse(os.path.exists(self.canonical_temp_dir)) else: print(sorted(os.listdir(self.canonical_temp_dir))) - self.assertExists(os.path.join(self.canonical_temp_dir, 'emcc-03-original.js')) + self.assertExists(os.path.join(self.canonical_temp_dir, 'emcc-02-original.js')) def test_debuginfo_line_tables_only(self): def test(do_compile): @@ -3521,10 +3521,10 @@ def test_embind_tsgen_val(self): def test_embind_tsgen_bigint(self): args = [EMXX, test_file('other/embind_tsgen_bigint.cpp'), '-lembind', '--emit-tsd', 'embind_tsgen_bigint.d.ts'] # Check that TypeScript generation fails when code contains bigints but their support is not enabled - stderr = self.expect_fail(args) + stderr = self.expect_fail(args + ['-sWASM_BIGINT=0']) self.assertContained("Missing primitive type to TS type for 'int64_t", stderr) # Check that TypeScript generation works when bigint support is enabled - self.run_process(args + ['-sWASM_BIGINT']) + self.run_process(args) self.assertFileContents(test_file('other/embind_tsgen_bigint.d.ts'), read_file('embind_tsgen_bigint.d.ts')) @requires_wasm64 @@ -8053,7 +8053,7 @@ def test_malloc_multithreading(self, allocator, args): @parameterized({ '': ([], 'testbind.js'), - 'bigint': (['-sWASM_BIGINT'], 'testbind_bigint.js'), + 'nobigint': (['-sWASM_BIGINT=0'], 'testbind_nobigint.js'), }) @requires_node def test_i64_return_value(self, args, bind_js): @@ -8235,15 +8235,15 @@ def test_memory_growth_noasm(self): assert 'use asm' not in src def test_EM_ASM_i64(self): + self.do_other_test('test_em_asm_i64.cpp') + self.do_other_test('test_em_asm_i64.cpp', force_c=True) + + self.set_setting('WASM_BIGINT', 0) expected = 'Invalid character 106("j") in readEmAsmArgs!' self.do_runf('other/test_em_asm_i64.cpp', expected_output=expected, assert_returncode=NON_ZERO) - self.set_setting('WASM_BIGINT') - self.do_other_test('test_em_asm_i64.cpp') - self.do_other_test('test_em_asm_i64.cpp', force_c=True) - def test_eval_ctor_ordering(self): # ensure order of execution remains correct, even with a bad ctor def test(p1, p2, p3, last, expected): @@ -8549,7 +8549,7 @@ def test_binaryen_warn_mem(self): self.run_process([EMCC, test_file('hello_world.c'), '-sINITIAL_MEMORY=' + str(16 * 1024 * 1024), '--pre-js', 'pre.js', '-sWASM_ASYNC_COMPILATION=0', '-sIMPORTED_MEMORY']) out = self.run_js('a.out.js', assert_returncode=NON_ZERO) self.assertContained('LinkError', out) - self.assertContained("memory import 2 has a larger maximum size 800 than the module's declared maximum", out) + self.assertContained("has a larger maximum size 800 than the module's declared maximum", out) self.assertNotContained('hello, world!', out) # and with memory growth, all should be good self.run_process([EMCC, test_file('hello_world.c'), '-sINITIAL_MEMORY=' + str(16 * 1024 * 1024), '--pre-js', 'pre.js', '-sALLOW_MEMORY_GROWTH', '-sWASM_ASYNC_COMPILATION=0', '-sIMPORTED_MEMORY']) @@ -8975,7 +8975,7 @@ def test_legalize_js_ffi(self, args, js_ffi): # test disabling of JS FFI legalization when not using bigint print(args) delete_file('a.out.wasm') - cmd = [EMCC, test_file('other/ffi.c'), '-g', '-o', 'a.out.wasm'] + args + cmd = [EMCC, test_file('other/ffi.c'), '-g', '-o', 'a.out.wasm', '-sWASM_BIGINT=0'] + args print(' '.join(cmd)) self.run_process(cmd) text = self.get_wasm_text('a.out.wasm') @@ -11508,13 +11508,13 @@ def test(code): print(f'int:{i} float:{f} double:{lf}: both{both}') # iprintf is much smaller than printf with float support - self.assertGreater(i, f - 3500) + self.assertGreater(i, f - 3800) self.assertLess(i, f - 3000) # __small_printf is somewhat smaller than printf with long double support self.assertGreater(f, lf - 900) self.assertLess(f, lf - 500) # both is a little bigger still - self.assertGreater(lf, both - 110) + self.assertGreater(lf, both - 150) self.assertLess(lf, both - 50) @parameterized({ @@ -12352,19 +12352,18 @@ def ok(args, filename='hello_world.cpp', expected='hello, world!'): args += ['-sERROR_ON_WASM_CHANGES_AFTER_LINK'] self.do_runf(filename, expected, emcc_args=args) - # -O0 with BigInt support (to avoid the need for legalization) - required_flags = ['-sWASM_BIGINT'] - ok(required_flags) + # -O0 with BigInt support (now on by default) + ok([]) # Same with DWARF - ok(required_flags + ['-g']) + ok(['-g']) # Function pointer calls from JS work too - ok(required_flags, filename='hello_world_main_loop.cpp') + ok([], filename='hello_world_main_loop.cpp') # -O1 is ok as we don't run wasm-opt there (but no higher, see below) - ok(required_flags + ['-O1']) + ok(['-O1']) # Exception support shouldn't require changes after linking - ok(required_flags + ['-fexceptions']) + ok(['-fexceptions']) # Standalone mode should not do anything special to the wasm. - ok(required_flags + ['-sSTANDALONE_WASM']) + ok(['-sSTANDALONE_WASM']) # other builds fail with a standard message + extra details def fail(args, details): @@ -12376,11 +12375,13 @@ def fail(args, details): # plain -O0 legalization_message = 'to disable int64 legalization (which requires changes after link) use -sWASM_BIGINT' - fail([], legalization_message) + fail(['-sWASM_BIGINT=0'], legalization_message) + # TODO(https://github.com/emscripten-core/emscripten/issues/23184): change this back to 140100 after 15 is default + fail(['-sMIN_SAFARI_VERSION=140000'], legalization_message) # optimized builds even without legalization optimization_message = '-O2+ optimizations always require changes, build with -O0 or -O1 instead' - fail(required_flags + ['-O2'], optimization_message) - fail(required_flags + ['-O3'], optimization_message) + fail(['-O2'], optimization_message) + fail(['-O3'], optimization_message) @crossplatform def test_output_to_nowhere(self): @@ -14450,7 +14451,8 @@ def test_reproduce(self): def test_min_browser_version(self): err = self.expect_fail([EMCC, test_file('hello_world.c'), '-Wno-transpile', '-Werror', '-sWASM_BIGINT', '-sMIN_SAFARI_VERSION=120000']) - self.assertContained('emcc: error: MIN_SAFARI_VERSION=120000 is not compatible with WASM_BIGINT (150000 or above required)', err) + # TODO(https://github.com/emscripten-core/emscripten/issues/23184): fix back to 15000 once Safari 15 is default + self.assertContained('emcc: error: MIN_SAFARI_VERSION=120000 is not compatible with WASM_BIGINT (140100 or above required)', err) err = self.expect_fail([EMCC, test_file('hello_world.c'), '-Wno-transpile', '-Werror', '-pthread', '-sMIN_CHROME_VERSION=73']) self.assertContained('emcc: error: MIN_CHROME_VERSION=73 is not compatible with pthreads (74 or above required)', err) diff --git a/test/test_sanity.py b/test/test_sanity.py index 17b95aac6824a..801ad5f36e609 100644 --- a/test/test_sanity.py +++ b/test/test_sanity.py @@ -777,10 +777,10 @@ def test_binaryen_version(self): f.write('\nBINARYEN_ROOT = "' + self.in_dir('fake') + '"') make_fake_tool(self.in_dir('fake', 'bin', 'wasm-opt'), 'foo') - self.check_working([EMCC, test_file('hello_world.c')], 'error parsing binaryen version (wasm-opt version foo). Please check your binaryen installation') + self.check_working([EMCC, test_file('hello_world.c'), '-O2'], 'error parsing binaryen version (wasm-opt version foo). Please check your binaryen installation') make_fake_tool(self.in_dir('fake', 'bin', 'wasm-opt'), '70') - self.check_working([EMCC, test_file('hello_world.c')], 'unexpected binaryen version: 70 (expected ') + self.check_working([EMCC, test_file('hello_world.c'), '-O2'], 'unexpected binaryen version: 70 (expected ') def test_bootstrap(self): restore_and_set_up() diff --git a/tools/feature_matrix.py b/tools/feature_matrix.py index 61c9399dd1aad..372d17c4ae332 100644 --- a/tools/feature_matrix.py +++ b/tools/feature_matrix.py @@ -66,7 +66,8 @@ class Feature(IntEnum): Feature.JS_BIGINT_INTEGRATION: { 'chrome': 67, 'firefox': 68, - 'safari': 150000, + 'safari': 140100, # TODO(https://github.com/emscripten-core/emscripten/issues/23184): set this back to 15 after we update the default targets. + 'node': 130000, }, Feature.THREADS: { 'chrome': 74, @@ -137,7 +138,7 @@ def enable_feature(feature, reason, override=False): f'{name}={user_settings[name]} is not compatible with {reason} ' f'({min_version} or above required)') else: - # Otherwise we bump the minimum version to accommodate the feature. + # If no conflict, bump the minimum version to accommodate the feature. setattr(settings, name, min_version) @@ -151,7 +152,9 @@ def disable_feature(feature): # a user requests a feature that we know is only supported in browsers # from a specific version and above, we can assume that browser version. def apply_min_browser_versions(): - if settings.WASM_BIGINT: + if settings.WASM_BIGINT and 'WASM_BIGINT' in user_settings: + # WASM_BIGINT is enabled by default, don't use it to enable other features + # unless the user explicitly enabled it. enable_feature(Feature.JS_BIGINT_INTEGRATION, 'WASM_BIGINT') if settings.PTHREADS: enable_feature(Feature.THREADS, 'pthreads') diff --git a/tools/link.py b/tools/link.py index 88ef0822e8a23..bbf9829a595c9 100644 --- a/tools/link.py +++ b/tools/link.py @@ -795,9 +795,19 @@ def phase_linker_setup(options, state, newargs): # noqa: C901, PLR0912, PLR0915 # to js. settings.WASM = 1 settings.WASM2JS = 1 + # Wasm bigint doesn't make sense with wasm2js, since it controls how the + # wasm and JS interact. + if user_settings.get('WASM_BIGINT') and settings.WASM_BIGINT: + exit_with_error('WASM_BIGINT=1 is not compatible with WASM=0 (wasm2js)') + settings.WASM_BIGINT = 0 + feature_matrix.disable_feature(feature_matrix.Feature.JS_BIGINT_INTEGRATION) if settings.WASM == 2: # Requesting both Wasm and Wasm2JS support settings.WASM2JS = 1 + if user_settings.get('WASM_BIGINT') and settings.WASM_BIGINT: + exit_with_error('WASM_BIGINT=1 is not compatible with WASM=2 (wasm2js)') + settings.WASM_BIGINT = 0 + feature_matrix.disable_feature(feature_matrix.Feature.JS_BIGINT_INTEGRATION) if options.oformat == OFormat.WASM and not settings.SIDE_MODULE: # if the output is just a wasm file, it will normally be a standalone one, @@ -1391,6 +1401,7 @@ def phase_linker_setup(options, state, newargs): # noqa: C901, PLR0912, PLR0915 settings.SUPPORTS_PROMISE_ANY = feature_matrix.caniuse(feature_matrix.Feature.PROMISE_ANY) if not settings.BULK_MEMORY: settings.BULK_MEMORY = feature_matrix.caniuse(feature_matrix.Feature.BULK_MEMORY) + default_setting('WASM_BIGINT', feature_matrix.caniuse(feature_matrix.Feature.JS_BIGINT_INTEGRATION)) if settings.AUDIO_WORKLET: if settings.AUDIO_WORKLET == 1: