summaryrefslogtreecommitdiff
path: root/test/wasm2js/empty_loop.2asm.js.opt
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2024-11-21 11:26:33 -0800
committerGitHub <noreply@github.com>2024-11-21 11:26:33 -0800
commit3342d56e4a13170c094a29138b32ff17cad4c01d (patch)
tree8a63abc6e8f0e9cdb01eef40ffbd9010bf009d8b /test/wasm2js/empty_loop.2asm.js.opt
parentaf5f74aeb3c53081ffaedbde18a77bdede0a697e (diff)
downloadbinaryen-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.opt26
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;