| var n = 10000000; |
| |
| function bar(f) { f(10); } |
| |
| function foo(b) { |
| var result = 0; |
| var imUndefined; |
| var baz; |
| var set = function (x) { result = x; return (imUndefined, baz); } |
| baz = 40; |
| if (b) { |
| bar(set); |
| if (result != 10) |
| throw "Error: bad: " + result; |
| if (baz !== 40) |
| throw "Error: bad: " + baz; |
| if (imUndefined !== void 0) |
| throw "Error: bad value: " + imUndefined; |
| return 0; |
| } |
| return result; |
| } |
| |
| noInline(bar); |
| noInline(foo); |
| |
| for (var i = 0; i < n; i++) { |
| var result = foo(!(i % 100)); |
| if (result != 0) |
| throw "Error: bad result: " + result; |
| } |