// |jit-test| // Only fails with Ion. function add_xors_1() { var res = 0; var step = 4; for (var i = 0x7fffffff | 0; i >= (1 << step); i -= (i >> step)) { var x = i ^ (i << 1); res += (((x + x) + res + res) | 0); } return res; } var r1 = add_xors_1(); for (var i = 0; i < 100; i++) { var r2 = add_xors_1(); assertEq(r2, r1); } // Only fails with JM function add_xors_2() { var res = 0; var step = 4; for (var i = 0x7fffffff | 0; i >= (1 << step); i -= (i >> step)) { var x = i ^ (i << 1); res += ((x + x) + res + res) | 0; } return res; } var r1 = add_xors_2(); for (var i = 0; i < 100; i++) { var r2 = add_xors_2(); assertEq(r1, r2); }