Source code

Revision control

Copy as Markdown

Other Tools

var evalInFrame = (function evalInFrame(global) {
var dbgGlobal = newGlobal({newCompartment: true});
var dbg = new dbgGlobal.Debugger();
return function evalInFrame(upCount, code) {
dbg.addDebuggee(global);
var frame = dbg.getNewestFrame().older;
for (var i = 0; i < upCount; i++)
frame = frame.older;
var completion = frame.eval(code);
if (completion.throw)
throw 1;
};
})(this);
function f() {
for (var i = 0; i < 10; - i)
g();
}
function h() {
evalInFrame(0, "a.push(1)");
evalInFrame(1, "a.push(2)");
}
function g() {
h();
}
try {
f();
} catch(e) {}
var a = [];
for (var i = 0; i < 3; i++)
g();
assertEq(a.length, 6);