onEnterFrame-generator-06.js (734B)
1 // Bug 1561935. Test interaction between debug traps for step mode and 2 // DebugAfterYield. 3 4 let g = newGlobal({newCompartment: true}); 5 g.eval('function* f() { yield 1; yield 2; }'); 6 let dbg = Debugger(g); 7 let genObj = null; 8 let hits = 0; 9 dbg.onEnterFrame = frame => { 10 // The first time onEnterFrame fires, there is no generator object, so 11 // there's nothing to test. The generator object doesn't exist until 12 // JSOP_GENERATOR is reached, right before the initial yield. 13 if (genObj === null) { 14 // Trigger step mode. 15 frame.onStep = function() {}; 16 } else { 17 dbg.removeDebuggee(g); 18 dbg.addDebuggee(g); 19 hits++; 20 } 21 }; 22 genObj = g.f(); 23 for (let x of genObj) {} 24 assertEq(hits, 3);