meth-ary-ptrn-rest-id-elision-next-err.js (2065B)
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/meth.template 4 /*--- 5 description: Rest element following elision elements (method) 6 esid: sec-runtime-semantics-definemethod 7 features: [generators, destructuring-binding] 8 flags: [generated] 9 info: | 10 MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } 11 12 [...] 13 6. Let closure be FunctionCreate(kind, StrictFormalParameters, 14 FunctionBody, scope, strict). If functionPrototype was passed as a 15 parameter then pass its value as the functionPrototype optional argument 16 of FunctionCreate. 17 [...] 18 19 9.2.1 [[Call]] ( thisArgument, argumentsList) 20 21 [...] 22 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). 23 [...] 24 25 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 26 27 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). 28 [...] 29 30 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) 31 32 [...] 33 23. Let iteratorRecord be Record {[[iterator]]: 34 CreateListIterator(argumentsList), [[done]]: false}. 35 24. If hasDuplicates is true, then 36 [...] 37 25. Else, 38 b. Let formalStatus be IteratorBindingInitialization for formals with 39 iteratorRecord and env as arguments. 40 [...] 41 42 13.3.3.6 Runtime Semantics: IteratorBindingInitialization 43 ArrayBindingPattern : [ Elisionopt BindingRestElement ] 44 1. If Elision is present, then 45 a. Let status be the result of performing 46 IteratorDestructuringAssignmentEvaluation of Elision with 47 iteratorRecord as the argument. 48 b. ReturnIfAbrupt(status). 49 2. Return the result of performing IteratorBindingInitialization for 50 BindingRestElement with iteratorRecord and environment as arguments. 51 52 ---*/ 53 var iter = (function*() { throw new Test262Error(); })(); 54 55 var obj = { 56 method([, ...x]) {} 57 }; 58 59 assert.throws(Test262Error, function() { 60 obj.method(iter); 61 }); 62 63 reportCompare(0, 0);