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