gen-yield-identifier-non-strict.js (1023B)
1 // This file was procedurally generated from the following sources: 2 // - src/generators/yield-identifier-non-strict.case 3 // - src/generators/non-strict/obj-method.template 4 /*--- 5 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Generator method - valid for non-strict only cases) 6 esid: prod-GeneratorMethod 7 features: [generators] 8 flags: [generated, noStrict] 9 info: | 10 14.4 Generator Function Definitions 11 12 GeneratorMethod[Yield, Await]: 13 * PropertyName ( UniqueFormalParameters ) { GeneratorBody } 14 15 ---*/ 16 17 var callCount = 0; 18 19 var gen = { 20 *method() { 21 callCount += 1; 22 return (function(arg) { 23 var yield = arg + 1; 24 return yield; 25 }(yield)) 26 } 27 }.method; 28 29 var iter = gen(); 30 31 var item = iter.next(); 32 33 assert.sameValue(item.done, false); 34 assert.sameValue(item.value, undefined); 35 36 item = iter.next(42); 37 38 assert.sameValue(item.done, true); 39 assert.sameValue(item.value, 43); 40 41 assert.sameValue(callCount, 1); 42 43 reportCompare(0, 0);