Source code

Revision control

Copy as Markdown

Other Tools

// evalWithBindings ignores non-enumerable and non-own properties.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);
var hits = 0;
dbg.onDebuggerStatement = function (frame) {
assertEq(frame.evalWithBindings("toString + constructor + length", []).return, 112233);
var obj = Object.create({constructor: "FAIL"}, {length: {value: "fail"}});
assertEq(frame.evalWithBindings("toString + constructor + length", obj).return, 112233);
hits++;
};
g.eval("function f() { var toString = 111111, constructor = 1111, length = 11; debugger; }");
g.f();
assertEq(hits, 1);