ary-ptrn-rest-id-elision-next-err.js (1908B)
1 // This file was procedurally generated from the following sources: 2 // - src/dstr-binding/ary-ptrn-rest-id-elision-next-err.case 3 // - src/dstr-binding/error/arrow-function.template 4 /*--- 5 description: Rest element following elision elements (arrow function expression) 6 esid: sec-arrow-function-definitions-runtime-semantics-evaluation 7 features: [generators, destructuring-binding] 8 flags: [generated] 9 info: | 10 ArrowFunction : ArrowParameters => ConciseBody 11 12 [...] 13 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). 14 [...] 15 16 9.2.1 [[Call]] ( thisArgument, argumentsList) 17 18 [...] 19 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). 20 [...] 21 22 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 23 24 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). 25 [...] 26 27 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) 28 29 [...] 30 23. Let iteratorRecord be Record {[[iterator]]: 31 CreateListIterator(argumentsList), [[done]]: false}. 32 24. If hasDuplicates is true, then 33 [...] 34 25. Else, 35 b. Let formalStatus be IteratorBindingInitialization for formals with 36 iteratorRecord and env as arguments. 37 [...] 38 39 13.3.3.6 Runtime Semantics: IteratorBindingInitialization 40 ArrayBindingPattern : [ Elisionopt BindingRestElement ] 41 1. If Elision is present, then 42 a. Let status be the result of performing 43 IteratorDestructuringAssignmentEvaluation of Elision with 44 iteratorRecord as the argument. 45 b. ReturnIfAbrupt(status). 46 2. Return the result of performing IteratorBindingInitialization for 47 BindingRestElement with iteratorRecord and environment as arguments. 48 49 ---*/ 50 var iter = (function*() { throw new Test262Error(); })(); 51 52 var f = ([, ...x]) => {}; 53 54 assert.throws(Test262Error, function() { 55 f(iter); 56 }); 57 58 reportCompare(0, 0);