[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / microbenchmarks / slow-array-profile-convergence.js
1 function foo(length, value) {
2     var o = {};
3     o.length = length;
4     for (var i = 0; i < o.length; ++i)
5         o[i] = value; // If the array profile is too stochastic then we'll miss the fact that the first iteration has a different indexing type than the subsequent iterations.
6     for (var i = 0; i < o.length; ++i) {
7         for (var j = 0; j < o.length; ++j)
8             o[i] += o[j];
9     }
10     return o;
11 }
12
13 function sum(array) {
14     var result = 0;
15     for (var i = array.length; i--;)
16         result += array[i];
17     return result;
18 }
19
20 var result = 0;
21 for (var i = 0; i < 10000; ++i)
22     result += sum(foo(5, i % 42));
23
24 if (result != 136889232)
25     throw "Error: bad result: " + result;
26