call-generic-new-target.js (514B)
1 // Test that the generic call trampoline passes new.target correctly. 2 3 function foo(F) { 4 return new F(); 5 } 6 7 with ({}) {} 8 9 class C { 10 constructor() { 11 this.newTarget = new.target; 12 } 13 } 14 class C1 extends C {} 15 class C2 extends C {} 16 class C3 extends C {} 17 let C4 = C3.bind({}); 18 let C5 = C3.bind({}, 1); 19 20 for (var i = 0; i < 500; i++) { 21 assertEq(foo(C1).newTarget, C1); 22 assertEq(foo(C2).newTarget, C2); 23 assertEq(foo(C3).newTarget, C3); 24 assertEq(foo(C4).newTarget, C3); 25 assertEq(foo(C5).newTarget, C3); 26 }