named-yield-spread-obj.js (1078B)
1 // This file was procedurally generated from the following sources: 2 // - src/generators/yield-spread-obj.case 3 // - src/generators/default/expression-named.template 4 /*--- 5 description: Use yield value in a object spread position (Named generator expression) 6 esid: prod-GeneratorExpression 7 features: [object-spread, generators] 8 flags: [generated] 9 info: | 10 14.4 Generator Function Definitions 11 12 GeneratorExpression: 13 function * BindingIdentifier opt ( 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 var gen = function *g() { 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);