value-via-new.js (949B)
1 // Copyright (C) 2016 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 esid: sec-new-operator-runtime-semantics-evaluation 5 es6id: 12.3.3.1 6 description: Value when invoked via NewExpression 7 info: | 8 NewExpression:newNewExpression 9 10 1. Return ? EvaluateNew(NewExpression, empty). 11 12 MemberExpression:newMemberExpressionArguments 13 14 2. Return ? EvaluateNew(MemberExpression, Arguments). 15 16 12.3.3.1.1 Runtime Semantics: EvaluateNew 17 18 [...] 19 8. Return ? Construct(constructor, argList). 20 21 7.3.13 Construct (F [ , argumentsList [ , newTarget ]]) 22 23 1. If newTarget was not passed, let newTarget be F. 24 features: [new.target] 25 ---*/ 26 27 var newTarget = null; 28 function f() { 29 newTarget = new.target; 30 } 31 32 new f; 33 34 assert.sameValue(newTarget, f, 'Invoked without Arguments'); 35 36 newTarget = null; 37 38 new f(); 39 40 assert.sameValue(newTarget, f, 'Invoked with Arguments'); 41 42 reportCompare(0, 0);