Frame-onPop-multiple-04.js (830B)
1 // If one Debugger's onPop handler causes another Debugger to create a 2 // Debugger.Frame instance referring to the same frame, that frame still 3 // gets marked as not live after all the onPop handlers have run. 4 var g = newGlobal({newCompartment: true}); 5 var dbg1 = new Debugger(g); 6 var dbg2 = new Debugger(g); 7 8 var log; 9 var frame2; 10 11 dbg1.onEnterFrame = function handleEnter(frame) { 12 log += '('; 13 frame.onPop = function handlerPop1(c) { 14 log += ')'; 15 frame2 = dbg2.getNewestFrame(); 16 assertEq(frame2.onStack, true); 17 frame2.onPop = function handlePop2(c) { 18 assertEq("late frame's onPop handler ran", 19 "late frame's onPop handler should not run"); 20 }; 21 }; 22 }; 23 24 log = ''; 25 assertEq(g.eval('40 + 2'), 42); 26 assertEq(log, '()'); 27 assertEq(frame2.onStack, false);