diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-07-16 18:14:49 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-07-16 18:14:49 -0700 |
commit | 33ea873c9f04c4419818d44a4066602bfc712a0d (patch) | |
tree | 1119806ea55630fccb8a0fb4bbede4275dcb32e5 /tools/test-js-optimizer-asm-outline1-output.js | |
parent | cf1180979015805a5ac62d2b6ebe5166771ea030 (diff) |
fix labeled break/continue forwarding from outlined code
Diffstat (limited to 'tools/test-js-optimizer-asm-outline1-output.js')
-rw-r--r-- | tools/test-js-optimizer-asm-outline1-output.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/test-js-optimizer-asm-outline1-output.js b/tools/test-js-optimizer-asm-outline1-output.js index cbf6d8e6..0780484a 100644 --- a/tools/test-js-optimizer-asm-outline1-output.js +++ b/tools/test-js-optimizer-asm-outline1-output.js @@ -65,6 +65,37 @@ function lin5() { } return 20; } +function mix() { + main : while (1) { + c(1); + c(2); + c(3); + c(4); + c(5); + c(6); + mix$1(sp); + mix$0(sp); + if (HEAP32[sp + 0 >> 2] == 1) { + break; + } + if (HEAP32[sp + 0 >> 2] == 2) { + switch (HEAP32[sp + 8 >> 2]) { + case 1: + break main; + } + } + if (HEAP32[sp + 0 >> 2] == 3) { + continue; + } + if (HEAP32[sp + 0 >> 2] == 4) { + switch (HEAP32[sp + 8 >> 2]) { + case 2: + continue main; + } + } + } + return 20; +} function lin$0(sp) { sp = sp | 0; c(13); @@ -183,4 +214,33 @@ function lin5$1(sp) { c(11); c(12); } +function mix$0(sp) { + sp = sp | 0; + OL : do { + c(15); + c(16); + c(17); + HEAP32[sp + 8 >> 2] = 1, HEAP32[sp + 0 >> 2] = 2, break OL; + c(18); + HEAP32[sp + 0 >> 2] = 1, break OL; + while (1) { + break; + } + c(19); + HEAP32[sp + 0 >> 2] = 3, break OL; + c(20); + HEAP32[sp + 8 >> 2] = 2, HEAP32[sp + 0 >> 2] = 4, break OL; + } while (0); +} +function mix$1(sp) { + sp = sp | 0; + c(7); + c(8); + c(9); + c(10); + c(11); + c(12); + c(13); + c(14); +} |