|
1 // var statements in non-strict evalWithBindings code behave like non-strict direct eval. |
|
2 var g = newGlobal(); |
|
3 var dbg = new Debugger(g); |
|
4 var log; |
|
5 dbg.onDebuggerStatement = function (frame) { |
|
6 log += 'd'; |
|
7 assertEq(frame.evalWithBindings("var i = v; 42;", { v: 'inner' }).return, 42); |
|
8 }; |
|
9 |
|
10 g.i = 'outer'; |
|
11 log = ''; |
|
12 assertEq(g.eval('debugger; i;'), 'inner'); |
|
13 assertEq(log, 'd'); |
|
14 |
|
15 g.j = 'outer'; |
|
16 log = ''; |
|
17 assertEq(g.eval('debugger; j;'), 'outer'); |
|
18 assertEq(log, 'd'); |