Source code
Revision control
Copy as Markdown
Other Tools
// env.names() lists nonenumerable names in with-statement environments.
var g = newGlobal({newCompartment: true});
var dbg = Debugger(g);
var hits = 0;
g.h = function () {
var env = dbg.getNewestFrame().environment;
var names = env.names();
assertEq(names.indexOf("a") !== -1, true);
//assertEq(names.indexOf("b") !== -1, true);
//assertEq(names.indexOf("isPrototypeOf") !== -1, true);
hits++;
};
g.eval("var obj = {a: 1};\n" +
"Object.defineProperty(obj, 'b', {value: 2});\n" +
"with (obj) h();");
assertEq(hits, 1);