michael@0: // The last Environment on the environment chain always has .type == "object" and .object === the global object. michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger; michael@0: var gw = dbg.addDebuggee(g); michael@0: g.eval("function h() { debugger; }"); michael@0: var hits = 0; michael@0: dbg.onDebuggerStatement = function (hframe) { michael@0: var env = hframe.older.environment; michael@0: while (env.parent) michael@0: env = env.parent; michael@0: assertEq(env.type, "object"); michael@0: assertEq(env.object, gw); michael@0: hits++; michael@0: }; michael@0: michael@0: g.eval("h();"); michael@0: g.eval("(function () { h(); return []; })();"); michael@0: g.eval("with (Math) { h(-2 * PI); }"); michael@0: assertEq(hits, 3);