|
1 // frame.eval can evaluate code in a frame pushed in another context. Bug 749697. |
|
2 |
|
3 // In other words, the debugger can see all frames on the stack, even though |
|
4 // each frame is attached to a particular JSContext and multiple JSContexts may |
|
5 // have frames on the stack. |
|
6 |
|
7 var g = newGlobal(); |
|
8 g.eval('function f(a) { debugger; evaluate("debugger;", {newContext: true}); }'); |
|
9 |
|
10 var dbg = new Debugger(g); |
|
11 var hits = 0; |
|
12 dbg.onDebuggerStatement = function (frame1) { |
|
13 dbg.onDebuggerStatement = function (frame2) { |
|
14 assertEq(frame1.eval("a").return, 31); |
|
15 hits++; |
|
16 }; |
|
17 }; |
|
18 |
|
19 g.f(31); |
|
20 assertEq(hits, 1); |