named-dflt-ary-ptrn-elision-step-err.js (1622B)
1 // This file was procedurally generated from the following sources: 2 // - src/dstr-binding/ary-ptrn-elision-step-err.case 3 // - src/dstr-binding/error/async-gen-func-named-expr-dflt.template 4 /*--- 5 description: Elision advances iterator and forwards abrupt completions (async generator named function expression (default parameter)) 6 esid: sec-asyncgenerator-definitions-evaluation 7 features: [generators, async-iteration] 8 flags: [generated] 9 info: | 10 AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier 11 ( FormalParameters ) { AsyncGeneratorBody } 12 13 [...] 14 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, 15 AsyncGeneratorBody, funcEnv, strict). 16 [...] 17 18 13.3.3.6 Runtime Semantics: IteratorBindingInitialization 19 20 ArrayBindingPattern : [ Elision ] 21 22 1. Return the result of performing 23 IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord 24 as the argument. 25 26 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation 27 28 Elision : , 29 30 1. If iteratorRecord.[[done]] is false, then 31 a. Let next be IteratorStep(iteratorRecord.[[iterator]]). 32 b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. 33 c. ReturnIfAbrupt(next). 34 35 ---*/ 36 var following = 0; 37 var iter =function* () { 38 throw new Test262Error(); 39 following += 1; 40 }(); 41 42 43 var f; 44 f = async function* h([,] = iter) { 45 46 }; 47 48 assert.throws(Test262Error, function() { 49 f(); 50 }); 51 52 iter.next(); 53 assert.sameValue(following, 0, 'Iterator was properly closed.'); 54 55 reportCompare(0, 0);