1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/ion/bug824863.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,53 @@ 1.4 +Module = {}; 1.5 +var Runtime = { 1.6 + alignMemory: function alignMemory(size, quantum) { 1.7 + return Math.ceil((size) / (quantum ? quantum : 4)) * (quantum ? quantum : 4); 1.8 + }, 1.9 +} 1.10 +function assert(condition, text) { 1.11 + throw text; 1.12 +} 1.13 +STACK_ROOT = STACKTOP = Runtime.alignMemory(1); 1.14 +function _main() { 1.15 + var __stackBase__ = STACKTOP; 1.16 + var label; 1.17 + label = 2; 1.18 + while (1) { 1.19 + switch (label) { 1.20 + case 2: 1.21 + var $f = __stackBase__; 1.22 + var $1 = __stackBase__ + 12; 1.23 + var $2 = __stackBase__ + 24; 1.24 + var $3 = $f | 0; 1.25 + var $4 = $f + 4 | 0; 1.26 + var $5 = $f + 8 | 0; 1.27 + var $_0 = $1 | 0; 1.28 + var $_1 = $1 + 4 | 0; 1.29 + var $_2 = $1 + 8 | 0; 1.30 + var $j_012 = 0; 1.31 + label = 4; 1.32 + break; 1.33 + case 4: 1.34 + assertEq($_2, 24); 1.35 + if (($j_012 | 0) != 110) { 1.36 + var $j_012 = $j_012 + 1; 1.37 + break; 1.38 + } 1.39 + var $23 = $i_014 + 1 | 0; 1.40 + if (($23 | 0) != 110) { 1.41 + var $i_014 = $23; 1.42 + var $j_012 = 0; 1.43 + label = 4; 1.44 + break; 1.45 + } 1.46 + default: 1.47 + assert(0, "bad label: " + label); 1.48 + } 1.49 + } 1.50 +} 1.51 +try { 1.52 + _main(0, [], 0); 1.53 + assertEq(0, 1); 1.54 +} catch(e) { 1.55 + assertEq(e, "bad label: 4"); 1.56 +}