Source code
Revision control
Copy as Markdown
Other Tools
// An Environment keeps its referent alive.
var g = newGlobal({newCompartment: true});
g.eval("function f(x) { return 2 * x; }");
var dbg = Debugger(g);
var env;
dbg.onEnterFrame = function (frame) { env = frame.environment; };
assertEq(g.f(22), 44);
dbg.onEnterFrame = undefined;
assertEq(env.find("x"), env);
assertEq(env.names().join(","), "arguments,x");
gc();
g.gc(g);
gc(env);
assertEq(env.find("x"), env);
assertEq(env.names().join(","), "arguments,x");