blob: 257e723f0583622960553974bee0be08b9aa4548 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// Create a derived class with a default class constructor.
class C extends class {} {}
// The default constructor of a derived class is small enough to be inlinable.
assertEq(isSmallFunction(C), true);
// Bound functions have a configurable "prototype" property.
const BF = function(){}.bind();
function testBoundFunction() {
for (let i = 0; i <= 1000; ++i) {
let newTarget = i < 1000 ? C : BF;
Reflect.construct(C, [], newTarget);
}
}
for (let i = 0; i < 2; ++i) testBoundFunction();
// Proxy have a configurable "prototype" property.
const P = new Proxy(function(){}, {});
function testProxy() {
for (let i = 0; i <= 1000; ++i) {
let newTarget = i < 1000 ? C : P;
Reflect.construct(C, [], newTarget);
}
}
for (let i = 0; i < 2; ++i) testProxy();
|