// The objects on the environment chain are all Debugger.Environment objects. // The environment chain ends in null. var g = newGlobal() g.eval("function f(a) { return function (b) { return function (c) { h(); return a + b + c; }; }; }"); var dbg = Debugger(g); var hits = 0; g.h = function () { var n = 0; for (var env = dbg.getNewestFrame().environment; env !== null; env = env.parent) { n++; assertEq(env instanceof Debugger.Environment, true); } assertEq(n >= 4, true); hits++; }; assertEq(g.f(5)(7)(9), 21); assertEq(hits, 1);