michael@0: // An Environment keeps its referent alive. michael@0: michael@0: var g = newGlobal(); michael@0: g.eval("function f(x) { return 2 * x; }"); michael@0: var dbg = Debugger(g); michael@0: var env; michael@0: dbg.onEnterFrame = function (frame) { env = frame.environment; }; michael@0: assertEq(g.f(22), 44); michael@0: dbg.onEnterFrame = undefined; michael@0: michael@0: assertEq(env.find("x"), env); michael@0: assertEq(env.names().join(","), "arguments,x"); michael@0: michael@0: gc(); michael@0: g.gc(g); michael@0: gc(env); michael@0: michael@0: assertEq(env.find("x"), env); michael@0: assertEq(env.names().join(","), "arguments,x");