ary-ptrn-elision-step-err.js (1581B)
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-decl.template 4 /*--- 5 description: Elision advances iterator and forwards abrupt completions (async generator function declaration) 6 esid: sec-asyncgenerator-definitions-instantiatefunctionobject 7 features: [generators, async-iteration] 8 flags: [generated] 9 info: | 10 AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier 11 ( FormalParameters ) { AsyncGeneratorBody } 12 13 [...] 14 3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, 15 scope, 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 async function* f([,]) { 44 45 }; 46 47 assert.throws(Test262Error, function() { 48 f(iter); 49 }); 50 51 iter.next(); 52 assert.sameValue(following, 0, 'Iterator was properly closed.'); 53 54 reportCompare(0, 0);