michael@0: // var statements in non-strict evalWithBindings code behave like non-strict direct eval. michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger(g); michael@0: var log; michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: log += 'd'; michael@0: assertEq(frame.evalWithBindings("var i = v; 42;", { v: 'inner' }).return, 42); michael@0: }; michael@0: michael@0: g.i = 'outer'; michael@0: log = ''; michael@0: assertEq(g.eval('debugger; i;'), 'inner'); michael@0: assertEq(log, 'd'); michael@0: michael@0: g.j = 'outer'; michael@0: log = ''; michael@0: assertEq(g.eval('debugger; j;'), 'outer'); michael@0: assertEq(log, 'd');