diff options
author | Alon Zakai <azakai@google.com> | 2024-11-21 11:26:33 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-21 11:26:33 -0800 |
commit | 3342d56e4a13170c094a29138b32ff17cad4c01d (patch) | |
tree | 8a63abc6e8f0e9cdb01eef40ffbd9010bf009d8b /test/wasm2js/empty_loop.2asm.js.opt | |
parent | af5f74aeb3c53081ffaedbde18a77bdede0a697e (diff) | |
download | binaryen-3342d56e4a13170c094a29138b32ff17cad4c01d.tar.gz binaryen-3342d56e4a13170c094a29138b32ff17cad4c01d.tar.bz2 binaryen-3342d56e4a13170c094a29138b32ff17cad4c01d.zip |
[wasm2js] Properly handle loops without labels (#7100)
When a loop has no name, the name does not matter, but we also cannot
emit the same name for all such loops, as that is invalid JS. Just do not
emit a while(){} at all in that case, as no continue can exist anyhow.
Fixes #7099
Also fix two missing * in error reporting logic, that was printing pointers
rather than the expression we wanted to print. I think we changed how
iostream prints things years ago, and forgot to update these.
Diffstat (limited to 'test/wasm2js/empty_loop.2asm.js.opt')
-rw-r--r-- | test/wasm2js/empty_loop.2asm.js.opt | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/wasm2js/empty_loop.2asm.js.opt b/test/wasm2js/empty_loop.2asm.js.opt new file mode 100644 index 000000000..ff37d056f --- /dev/null +++ b/test/wasm2js/empty_loop.2asm.js.opt @@ -0,0 +1,26 @@ + +function wasm2js_trap() { throw new Error('abort'); } + +function asmFunc(imports) { + var Math_imul = Math.imul; + var Math_fround = Math.fround; + var Math_abs = Math.abs; + var Math_clz32 = Math.clz32; + var Math_min = Math.min; + var Math_max = Math.max; + var Math_floor = Math.floor; + var Math_ceil = Math.ceil; + var Math_trunc = Math.trunc; + var Math_sqrt = Math.sqrt; + function test() { + wasm2js_trap(); + } + + return { + "test": test + }; +} + +var retasmFunc = asmFunc({ +}); +export var test = retasmFunc.test; |