Frame-onPop-dead-frame.js (628B)
1 // Don't crash trying to fire a dead frame's onPop handler. 2 3 var g = newGlobal({newCompartment: true}); 4 g.eval('function f() { debugger; }'); 5 6 var log = ''; 7 8 // Create two Debuggers debugging the same global `g`. Both will put onPop 9 // handlers on the same frame. 10 var dbg1 = Debugger(g); 11 dbg1.onDebuggerStatement = frame1 => { 12 frame1.onPop = completion => { 13 log += 'A'; 14 dbg2.removeDebuggee(g); // kills frame2, so frame2.onPop should not fire 15 log += 'B'; 16 }; 17 }; 18 19 var dbg2 = Debugger(g); 20 dbg2.onDebuggerStatement = frame2 => { 21 frame2.onPop = completion => { 22 log += 'C'; 23 }; 24 }; 25 26 g.f(); 27 28 assertEq(log, 'AB');