Source code

Revision control

Copy as Markdown

Other Tools

// frame.eval works in the enterFrame hook.
// It triggers the enterFrame hook again, recursively. (!)
var g = newGlobal({newCompartment: true});
g.a = ".";
var dbg = Debugger(g);
var nestCount = 0, N = 9;
var log = "";
dbg.onEnterFrame = function (frame) {
assertEq(frame.type, "eval");
if (nestCount < N) {
log += '(';
nestCount++;
var a = frame.eval("a").return;
log += a;
nestCount--;
log += ')';
}
};
assertEq(g.eval("a"), ".");
assertEq(log, Array(N + 1).join("(") + Array(N + 1).join(".)"));