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