|
1 // evalWithBindings works on non-top frames. |
|
2 var g = newGlobal(); |
|
3 var dbg = new Debugger(g); |
|
4 var f1; |
|
5 var hits = 0; |
|
6 dbg.onDebuggerStatement = function (frame) { |
|
7 assertEq(frame.older.evalWithBindings("q + r", {r: 3}).return, 5); |
|
8 |
|
9 // frame.older.older is in the same function as frame, but a different activation of it |
|
10 assertEq(frame.older.older.evalWithBindings("q + r", {r: 3}).return, 6); |
|
11 hits++; |
|
12 }; |
|
13 |
|
14 g.eval("function f1(q) { if (q == 1) debugger; else f2(2); }"); |
|
15 g.eval("function f2(arg) { var q = arg; f1(1); }"); |
|
16 g.f1(3); |
|
17 assertEq(hits, 1); |