| // Tests when we have a dead NewArray that we end up killing and there are other things in the basic block. |
| |
| function foo(a, b, c) { |
| var d = a + b; |
| var e = b + c; |
| var f = c + a; |
| var g = a - b; |
| var h = b - c; |
| var i = c - a; |
| var j = [a + 1, b + 2, c + 3, d + 4, e + 5, f + 6, g + 7, h + 8, i + 9]; |
| var d = a * b; |
| var e = b * c; |
| var f = c * a; |
| var g = a / b; |
| var h = b / c; |
| var i = c / a; |
| var j = [a + 10, b + 11, c + 12, d + 13, e + 14, f + 15, g + 16, h + 17, i + 18]; |
| var d = a % b; |
| var e = b % c; |
| var f = c % a; |
| var g = b - a; |
| var h = c - b; |
| var i = a - c; |
| var j = [a + 19, b + 20, c + 21, d + 22, e + 23, f + 24, g + 25, h + 26, i + 27]; |
| var d = b / a; |
| var e = c / b; |
| var f = a + c; |
| var g = b % a; |
| var h = c % b; |
| var i = a % c; |
| var j = [a + 28, b + 29, c + 30, d + 31, e + 32, f + 33, g + 34, h + 35, i + 36]; |
| return 42; |
| } |
| |
| noInline(foo); |
| |
| for (var i = 0; i < 100000; ++i) { |
| var result = foo(1.5, 2.5, 3.5); |
| if (result != 42) |
| throw "Error: bad result: " + result; |
| } |
| |