| // |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); |
| } |