bug1417961.js (678B)
1 var evalInFrame = (function evalInFrame(global) { 2 var dbgGlobal = newGlobal({newCompartment: true}); 3 var dbg = new dbgGlobal.Debugger(); 4 return function evalInFrame(upCount, code) { 5 dbg.addDebuggee(global); 6 var frame = dbg.getNewestFrame().older; 7 for (var i = 0; i < upCount; i++) 8 frame = frame.older; 9 var completion = frame.eval(code); 10 if (completion.throw) 11 throw 1; 12 }; 13 })(this); 14 function f() { 15 for (var i = 0; i < 10; - i) 16 g(); 17 } 18 function h() { 19 evalInFrame(0, "a.push(1)"); 20 evalInFrame(1, "a.push(2)"); 21 } 22 function g() { 23 h(); 24 } 25 try { 26 f(); 27 } catch(e) {} 28 var a = []; 29 for (var i = 0; i < 3; i++) 30 g(); 31 assertEq(a.length, 6);