var-env-func-init-global-new.js (1325B)
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-evaldeclarationinstantiation 5 description: Initialization of new global property 6 info: | 7 [...] 8 15. For each production f in functionsToInitialize, do 9 a. Let fn be the sole element of the BoundNames of f. 10 b. Let fo be the result of performing InstantiateFunctionObject for f 11 with argument lexEnv. 12 c. If varEnvRec is a global Environment Record, then 13 i. Perform ? varEnvRec.CreateGlobalFunctionBinding(fn, fo, true). 14 [...] 15 16 8.1.1.4.18 CreateGlobalFunctionBinding 17 18 [...] 19 5. If existingProp is undefined or existingProp.[[Configurable]] is true, 20 then 21 a. Let desc be the PropertyDescriptor{[[Value]]: V, [[Writable]]: true, 22 [[Enumerable]]: true, [[Configurable]]: D}. 23 6. Else, 24 [...] 25 7. Perform ? DefinePropertyOrThrow(globalObject, N, desc). 26 [...] 27 flags: [noStrict] 28 includes: [propertyHelper.js] 29 ---*/ 30 31 var initial; 32 33 eval('initial = f; function f() { return 234; }'); 34 35 verifyProperty(this, 'f', { 36 writable: true, 37 enumerable: true, 38 configurable: true, 39 }); 40 41 assert.sameValue(typeof initial, 'function'); 42 assert.sameValue(initial(), 234); 43 44 reportCompare(0, 0);