[JSC] Clean up Object.entries implementation
[WebKit-https.git] / JSTests / microbenchmarks / super-get-by-val-with-this-monomorphic.js
1 const run = new Function("init", "num", `
2
3 function value() { return 'v'; }
4 noInline(value);
5
6 const calc = val => {
7     let c = 0;
8     for (let v = val; v; v >>>= 1) c += v & 1;
9     return val * 2 + val / 2 + c;
10 }
11
12 class A {
13     constructor(x) { this._v = x; }
14     set v(x) { this._v = x; }
15     get v() { return this._v; }
16 }
17 class B extends A {
18     set v(x) { super[value()] = x; }
19     get v() { return calc(super[value()]); }
20 }
21
22 const bench = (init, num) => {
23     let arr = [];
24     for (let i = 0; i != num; ++i) arr.push(new B(init));
25     for (let i = 0; i != num; ++i) arr[i].v += i;
26     let sum = 0;
27     for (let i = 0; i != num; ++i) sum += arr[i].v;
28 };
29
30 bench(init, num);
31 `);
32
33 run(2, 10000);
34 run(1 << 30, 10000);
35 run(42.2, 10000);
36 run(42.5e10, 10000);