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