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