michael@0: // getVariable works on ancestors of frame.environment. michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = Debugger(g); michael@0: var log = ''; michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: for (var env = frame.environment; env; env = env.parent) { michael@0: if (env.find("x") === env) michael@0: log += env.getVariable("x"); michael@0: } michael@0: }; michael@0: g.eval("var x = 1; { let x = 2; with (Object.create({x: 3})) { debugger; } }"); michael@0: assertEq(log, "321");