| function sumOfArithSeries(limit) { | |
| return limit * (limit + 1) / 2; | |
| } | |
| var n = 10000000; | |
| function bar() { } | |
| function foo(b) { | |
| var result = 0; | |
| for (var i = 0; i < n; ++i) { | |
| var iter = ([i, i + 1])[Symbol.iterator](); | |
| if (b) { | |
| bar(o, p); | |
| return; | |
| } | |
| for (x of iter) | |
| result += x; | |
| } | |
| return result; | |
| } | |
| noInline(bar); | |
| noInline(foo); | |
| var result = foo(false); | |
| if (result != sumOfArithSeries(n - 1) + sumOfArithSeries(n)) | |
| throw "Error: bad result: " + result; |