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