michael@0: // getVariable sees bindings in let-block scopes. 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: log += frame.environment.getVariable("x"); michael@0: }; michael@0: g.eval("function f() {\n" + michael@0: " let x = 'a';\n" + michael@0: " debugger;\n" + michael@0: " for (let x = 0; x < 2; x++)\n" + michael@0: " if (x === 0)\n" + michael@0: " debugger;\n" + michael@0: " else {\n" + michael@0: " let x = 'b'; debugger;\n" + michael@0: " }\n" + michael@0: "}\n"); michael@0: g.f(); michael@0: g.eval("let (x = 'c') { debugger; }"); michael@0: g.eval("{ let x = 'd'; debugger; }"); michael@0: assertEq(log, 'a0bcd');