async-gen-yield-spread-arr-multiple.js (1169B)
1 // |reftest| async 2 // This file was procedurally generated from the following sources: 3 // - src/async-generators/yield-spread-arr-multiple.case 4 // - src/async-generators/default/async-obj-method.template 5 /*--- 6 description: Use yield value in a array spread position (Async generator method) 7 esid: prod-AsyncGeneratorMethod 8 features: [async-iteration] 9 flags: [generated, async] 10 includes: [compareArray.js] 11 info: | 12 Async Generator Function Definitions 13 14 AsyncGeneratorMethod : 15 async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody } 16 17 18 Array Initializer 19 20 SpreadElement[Yield, Await]: 21 ...AssignmentExpression[+In, ?Yield, ?Await] 22 23 ---*/ 24 var arr = ['a', 'b', 'c']; 25 var item; 26 27 var callCount = 0; 28 29 var gen = { 30 async *method() { 31 callCount += 1; 32 yield [...yield yield]; 33 } 34 }.method; 35 36 var iter = gen(); 37 38 iter.next(false); 39 item = iter.next(['a', 'b', 'c']); 40 41 item.then(({ done, value }) => { 42 item = iter.next(value); 43 44 item.then(({ done, value }) => { 45 assert.compareArray(value, arr); 46 assert.sameValue(done, false); 47 }).then($DONE, $DONE); 48 }).catch($DONE); 49 50 assert.sameValue(callCount, 1);