gen-yield-spread-arr-single.js (1178B)
1 // This file was procedurally generated from the following sources: 2 // - src/generators/yield-spread-arr-single.case 3 // - src/generators/default/obj-method.template 4 /*--- 5 description: Use yield value in a array spread position (Generator method) 6 esid: prod-GeneratorMethod 7 features: [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 Array Initializer 17 18 SpreadElement[Yield, Await]: 19 ...AssignmentExpression[+In, ?Yield, ?Await] 20 ---*/ 21 var arr = ['a', 'b', 'c']; 22 23 var callCount = 0; 24 25 var gen = { 26 *method() { 27 callCount += 1; 28 yield [...yield]; 29 } 30 }.method; 31 32 var iter = gen(); 33 34 iter.next(false); 35 var item = iter.next(arr); 36 var value = item.value; 37 38 assert.notSameValue(value, arr, 'value is a new array'); 39 assert(Array.isArray(value), 'value is an Array exotic object'); 40 assert.sameValue(value.length, 3) 41 assert.sameValue(value[0], 'a'); 42 assert.sameValue(value[1], 'b'); 43 assert.sameValue(value[2], 'c'); 44 assert.sameValue(item.done, false); 45 46 assert.sameValue(callCount, 1); 47 48 reportCompare(0, 0);