Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / js / regress / script-tests / slow-array-profile-convergence.js
blobcfd05caea8d9fe67aaf3f4e89f3cf43171ae12b1
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;
13 function sum(array) {
14     var result = 0;
15     for (var i = array.length; i--;)
16         result += array[i];
17     return result;
20 var result = 0;
21 for (var i = 0; i < 10000; ++i)
22     result += sum(foo(5, i % 42));
24 if (result != 136889232)
25     throw "Error: bad result: " + result;