Update ReadMe.md
[qtwebkit.git] / JSTests / microbenchmarks / super-get-by-val-with-this-polymorphic.js
blob0bca823679295e0e153a7b068568db47a2890814
1 function value() { return 'v'; }
2 noInline(value);
4 const calc = val => {
5     let c = 0;
6     for (let v = val; v; v >>>= 1) c += v & 1;
7     return val * 2 + val / 2 + c;
10 class A {
11     constructor(x) { this._v = x; }
12     set v(x) { this._v = x; }
13     get v() { return this._v; }
15 class B extends A {
16     set v(x) { super[value()] = x; }
17     get v() { return calc(super[value()]); }
20 const bench = (init, num) => {
21     let arr = [];
22     for (let i = 0; i != num; ++i) arr.push(new B(init));
23     for (let i = 0; i != num; ++i) arr[i].v += i;
24     let sum = 0;
25     for (let i = 0; i != num; ++i) sum += arr[i].v;
28 bench(2, 10000);
29 bench(1 << 30, 10000);
30 bench(42.2, 10000);
31 bench(42.5e10, 10000);