Source code

Revision control

Copy as Markdown

Other Tools

// Direct eval code under evalWithBindings sees both the bindings and the enclosing scope.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);
var hits = 0;
dbg.onDebuggerStatement = function (frame) {
var code =
"assertEq(a, 1234);\n" +
"assertEq(b, null);\n" +
"assertEq(c, 'ok');\n";
assertEq(frame.evalWithBindings("eval(s)", {s: code, a: 1234}).return, undefined);
hits++;
};
g.eval("function f(b) { var c = 'ok'; debugger; }");
g.f(null);
assertEq(hits, 1);