bug1233343.js (722B)
1 function addRemove() { 2 dbg.addDebuggee(g); 3 f = dbg.getNewestFrame().older; 4 } 5 function removeAdd() { 6 dbg.addDebuggee(g); 7 var f = dbg.getNewestFrame(); 8 while (f) { 9 f = f.older; 10 } 11 } 12 function testInterrupt() { 13 g = newGlobal({newCompartment: true}); 14 dbg = new Debugger; 15 g.eval("" + function f() { 16 return g(); 17 }); 18 g.eval("" + function g() { 19 return h(); 20 }); 21 g.eval("" + function h() { 22 for (var i = 0; i < 100; i++) { 23 interruptIf(5); 24 } 25 }); 26 setInterruptCallback(function() { 27 toggleSeq(); 28 return true; 29 }); 30 g.f(); 31 } 32 toggleSeq = addRemove; 33 testInterrupt(); 34 toggleSeq = removeAdd; 35 testInterrupt();