Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / js / regress / script-tests / slow-convergence.js
blob276e1b364ae507572f3ee3e1f9d7687f4c42589b
1 function foo(a, b, c, d) {
2     var result = a;
3     if (a < 0)
4         throw "what!";
5     else if (a < 1) {
6         for (var i = b; i < c; ++i)
7             result += d[i];
8     } else if (a < 2) {
9         for (var i = b + 1; i < c - 1; ++i)
10             result += d[i] * a;
11     } else if (a < 3) {
12         for (var i = b + 2; i < c - 2; ++i)
13             result += d[i] * b;
14     } else if (a < 4) {
15         for (var i = b + 3; i < c - 3; ++i)
16             result += d[i] * c;
17     } else
18         throw "huh?";
19     return result;
22 var array = [];
23 for (var i = 0; i < 20; ++i)
24     array.push(i);
26 var limit = 20000;
27 var phases = 4;
28 var result = 0;
29 for (var i = 0; i < limit; ++i) {
30     var phase = (i * phases / limit) | 0;
31     result += foo(i % (phase + 1), ((i % array.length) / 2) | 0, array.length - (((i % array.length) / 2) | 0), array);
34 if (result != 3072367)
35     throw "Bad result: " + result;