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