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