JSC should have a "microbenchmarks" directory instead of "regress" directory
[WebKit-https.git] / JSTests / microbenchmarks / obvious-sink-pathology.js
1 function sumOfArithSeries(limit) {
2     return limit * (limit + 1) / 2;
3 }
4
5 var n = 10000000;
6
7 function bar() { }
8
9 function foo(b) {
10     var result = 0;
11     for (var i = 0; i < n; ++i) {
12         var o = {f: i};
13         var p = {f: i + 1};
14         if (b)
15             bar(o, p);
16         result += o.f + p.f;
17     }
18     return result;
19 }
20
21 noInline(bar);
22 noInline(foo);
23
24 var result = foo(false);
25 if (result != sumOfArithSeries(n - 1) + sumOfArithSeries(n))
26     throw "Error: bad result: " + result;