onEnterFrame-generator-05.js (798B)
1 // When resuming a generator triggers one Debugger's onEnterFrame handler, 2 // all Debuggers' Debugger.Frames become usable at once. 3 4 load(libdir + "asserts.js"); 5 6 let g = newGlobal({newCompartment: true}); 7 g.eval(` 8 function* f() { 9 yield 1; 10 } 11 `); 12 let dbg1 = new Debugger(g); 13 let dbg2 = new Debugger(g); 14 15 let hits = 0; 16 let savedFrame1; 17 let savedFrame2; 18 dbg1.onEnterFrame = frame => { 19 if (savedFrame1 === undefined) { 20 savedFrame1 = frame; 21 savedFrame2 = dbg2.getNewestFrame(); 22 } else { 23 hits++; 24 assertEq(savedFrame1, frame); 25 for (let f of [savedFrame2, savedFrame1]) { 26 assertEq(f.type, "call"); 27 assertEq(f.callee.name, "f"); 28 } 29 } 30 }; 31 32 let values = [...g.f()]; 33 assertEq(hits, 2); 34 assertDeepEq(values, [1]);