diff options
author | Alon Zakai <azakai@google.com> | 2022-08-22 13:53:47 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-22 13:53:47 -0700 |
commit | 38c084ee386e257389d44c6200a403f74432e1af (patch) | |
tree | 8e41abd3ad903b9fcb426bf0c4be3dd66a092247 /test/wasm2js/labels.2asm.js | |
parent | b24df4d0c4705027fdc6e261aa3f8e4f61dc5c0a (diff) | |
download | binaryen-38c084ee386e257389d44c6200a403f74432e1af.tar.gz binaryen-38c084ee386e257389d44c6200a403f74432e1af.tar.bz2 binaryen-38c084ee386e257389d44c6200a403f74432e1af.zip |
Avoid adding new unneeded names to blocks in text roundtripping (#4943)
Previously the wat parser would turn this input:
(block
(nop)
)
into something like this:
(block $block17
(nop)
)
It just added a name all the time, in case the block is referred to by an index
later even though it doesn't have a name.
This PR makes us rountrip more precisely by not adding such names: if there
was no name before, and there is no break by index, then do not add a name.
In addition, this will be useful for non-nullable locals since whether a block has
a name or not matters there. Like #4912, this makes us more regular in our
usage of block names.
Diffstat (limited to 'test/wasm2js/labels.2asm.js')
-rw-r--r-- | test/wasm2js/labels.2asm.js | 80 |
1 files changed, 38 insertions, 42 deletions
diff --git a/test/wasm2js/labels.2asm.js b/test/wasm2js/labels.2asm.js index c12eaf7b4..4841f82f1 100644 --- a/test/wasm2js/labels.2asm.js +++ b/test/wasm2js/labels.2asm.js @@ -116,56 +116,52 @@ function asmFunc(env) { function $7() { var i = 0; i = 0; - block : { - l : { - break l; - } - i = i + 1 | 0; - l1 : { - break l1; - } - i = i + 1 | 0; - l2 : { - break l2; - } - i = i + 1 | 0; - l3 : { - break l3; - } - i = i + 1 | 0; - l4 : { - break l4; - } - i = i + 1 | 0; + l : { + break l; + } + i = i + 1 | 0; + l1 : { + break l1; + } + i = i + 1 | 0; + l2 : { + break l2; } + i = i + 1 | 0; + l3 : { + break l3; + } + i = i + 1 | 0; + l4 : { + break l4; + } + i = i + 1 | 0; return i | 0; } function $8() { var i = 0; i = 0; - block : { - if_ : { - break if_; - } - i = i + 1 | 0; - if5 : { - break if5; - } - i = i + 1 | 0; - if6 : { - break if6; - } - i = i + 1 | 0; - if7 : { - break if7; - } - i = i + 1 | 0; - if8 : { - break if8; - } - i = i + 1 | 0; + if_ : { + break if_; + } + i = i + 1 | 0; + if5 : { + break if5; + } + i = i + 1 | 0; + if6 : { + break if6; + } + i = i + 1 | 0; + if7 : { + break if7; + } + i = i + 1 | 0; + if8 : { + break if8; } + i = i + 1 | 0; return i | 0; } |