diff options
Diffstat (limited to 'js/src/jit-test/tests/ion/bug824863.js')
-rw-r--r-- | js/src/jit-test/tests/ion/bug824863.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/ion/bug824863.js b/js/src/jit-test/tests/ion/bug824863.js new file mode 100644 index 000000000..32627b9c6 --- /dev/null +++ b/js/src/jit-test/tests/ion/bug824863.js @@ -0,0 +1,53 @@ +Module = {}; +var Runtime = { + alignMemory: function alignMemory(size, quantum) { + return Math.ceil((size) / (quantum ? quantum : 4)) * (quantum ? quantum : 4); + }, +} +function assert(condition, text) { + throw text; +} +STACK_ROOT = STACKTOP = Runtime.alignMemory(1); +function _main() { + var __stackBase__ = STACKTOP; + var label; + label = 2; + while (1) { + switch (label) { + case 2: + var $f = __stackBase__; + var $1 = __stackBase__ + 12; + var $2 = __stackBase__ + 24; + var $3 = $f | 0; + var $4 = $f + 4 | 0; + var $5 = $f + 8 | 0; + var $_0 = $1 | 0; + var $_1 = $1 + 4 | 0; + var $_2 = $1 + 8 | 0; + var $j_012 = 0; + label = 4; + break; + case 4: + assertEq($_2, 24); + if (($j_012 | 0) != 110) { + var $j_012 = $j_012 + 1; + break; + } + var $23 = $i_014 + 1 | 0; + if (($23 | 0) != 110) { + var $i_014 = $23; + var $j_012 = 0; + label = 4; + break; + } + default: + assert(0, "bad label: " + label); + } + } +} +try { + _main(0, [], 0); + assertEq(0, 1); +} catch(e) { + assertEq(e, "bad label: 4"); +} |