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/br_table_temp.2asm.js | |
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/br_table_temp.2asm.js')
-rw-r--r-- | test/wasm2js/br_table_temp.2asm.js | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/test/wasm2js/br_table_temp.2asm.js b/test/wasm2js/br_table_temp.2asm.js index a8592a186..01a2238e1 100644 --- a/test/wasm2js/br_table_temp.2asm.js +++ b/test/wasm2js/br_table_temp.2asm.js @@ -12554,12 +12554,10 @@ function asmFunc(imports) { function $19() { var $1_1 = 0, $2_1 = 0, $4_1 = 0; label : { - $null_Name_ : while (1) { - $1_1 = 3; - switch (0 | 0) { - default: - break label; - }; + $1_1 = 3; + switch (0 | 0) { + default: + break label; }; } return $1_1 | 0; @@ -12568,13 +12566,11 @@ function asmFunc(imports) { function $20() { var $1_1 = 0, $2_1 = 0, $4_1 = 0; label : { - $null_Name_ : while (1) { - dummy(); - $1_1 = 4; - switch (-1 | 0) { - default: - break label; - }; + dummy(); + $1_1 = 4; + switch (-1 | 0) { + default: + break label; }; } return $1_1 | 0; @@ -12583,13 +12579,11 @@ function asmFunc(imports) { function $21() { var $1_1 = 0; label : { - $null_Name_ : while (1) { - dummy(); - $1_1 = 5; - switch (1 | 0) { - default: - break label; - }; + dummy(); + $1_1 = 5; + switch (1 | 0) { + default: + break label; }; } return $1_1 | 0; |