[JSC] Clean up Object.entries implementation
[WebKit-https.git] / JSTests / microbenchmarks / fold-get-by-id-to-multi-get-by-offset-rare-int.js
1 function foo(o) {
2     return o.f;
3 }
4
5 function fu(o) {
6     return o.e;
7 }
8
9 function bar(f, o) {
10     return f(o);
11 }
12
13 for (var i = 0; i < 1000; ++i) {
14     var o = {f:1};
15     o["i" + i] = 42;
16     foo(o);
17     fu({f:1, e:2});
18     fu({e:1, f:2});
19 }
20     
21 for (var i = 0; i < 100; ++i) {
22     bar(foo, {f:1});
23     bar(function() { }, null);
24     bar(function() { return 42 }, null);
25 }
26
27 Number.prototype.f = 100;
28     
29 (function(f, o, p) {
30     var result = 0;
31     var n = 1000000;
32     for (var i = 0; i < n + 1; ++i) {
33         result += fu(o);
34         var q;
35         if (i == n)
36             q = 42;
37         else
38             q = o;
39         result += bar(f, q);
40         var tmp = o;
41         o = p;
42         p = tmp;
43     }
44     if (result != (o.f + o.e + p.f + p.e) * n / 2 + 100 + p.e)
45         throw "Error: bad result: " + result;
46 })(foo, {f:42, e:43}, {e:44, f:45});
47