obj-prop-elem-init-fn-name-arrow.js (1872B)
1 // This file was procedurally generated from the following sources: 2 // - src/dstr-assignment/obj-prop-elem-init-fn-name-arrow.case 3 // - src/dstr-assignment/default/for-of.template 4 /*--- 5 description: Assignment of function `name` attribute (ArrowFunction) (For..of statement) 6 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation 7 features: [destructuring-binding] 8 flags: [generated] 9 includes: [propertyHelper.js] 10 info: | 11 IterationStatement : 12 for ( LeftHandSideExpression of AssignmentExpression ) Statement 13 14 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », 15 AssignmentExpression, iterate). 16 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, 17 keyResult, assignment, labelSet). 18 19 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation 20 21 [...] 22 4. If destructuring is true and if lhsKind is assignment, then 23 a. Assert: lhs is a LeftHandSideExpression. 24 b. Let assignmentPattern be the parse of the source text corresponding to 25 lhs using AssignmentPattern as the goal symbol. 26 [...] 27 28 AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt 29 [...] 7. If Initializer is present and v is undefined and 30 IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of 31 DestructuringAssignmentTarget are both true, then 32 a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). 33 b. ReturnIfAbrupt(hasNameProperty). 34 c. If hasNameProperty is false, perform SetFunctionName(rhsValue, 35 GetReferencedName(lref)). 36 37 ---*/ 38 var arrow; 39 40 var counter = 0; 41 42 for ({ x: arrow = () => {} } of [{}]) { 43 verifyProperty(arrow, 'name', { 44 enumerable: false, 45 writable: false, 46 configurable: true, 47 value: 'arrow' 48 }); 49 counter += 1; 50 } 51 52 assert.sameValue(counter, 1); 53 54 reportCompare(0, 0);