michael@0: // var declarations in strict frame.eval do not modify the frame michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger(g); michael@0: var cv; michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: cv = frame.eval("'use strict'; var a = 2; h();"); michael@0: }; michael@0: g.a = 1; michael@0: g.eval("function f(s) { function h() { return a; } eval(s); debugger; } "); michael@0: g.eval("f('0');"); michael@0: assertEq(cv.return, 1); michael@0: g.eval("f('var a = 3;');"); michael@0: assertEq(cv.return, 3);