Environment-gc-01.js (465B)
1 // An Environment keeps its referent alive. 2 3 var g = newGlobal({newCompartment: true}); 4 g.eval("function f(x) { return 2 * x; }"); 5 var dbg = Debugger(g); 6 var env; 7 dbg.onEnterFrame = function (frame) { env = frame.environment; }; 8 assertEq(g.f(22), 44); 9 dbg.onEnterFrame = undefined; 10 11 assertEq(env.find("x"), env); 12 assertEq(env.names().join(","), "arguments,x"); 13 14 gc(); 15 g.gc(g); 16 gc(env); 17 18 assertEq(env.find("x"), env); 19 assertEq(env.names().join(","), "arguments,x");