|
1 // Throwing an exception from an onPop handler when yielding terminates the debuggee |
|
2 // but does not close the generator-iterator. |
|
3 |
|
4 var g = newGlobal(); |
|
5 var dbg = new Debugger; |
|
6 var gw = dbg.addDebuggee(g); |
|
7 dbg.onDebuggerStatement = function handleDebugger(frame) { |
|
8 frame.onPop = function (c) { |
|
9 throw "fit"; |
|
10 }; |
|
11 }; |
|
12 g.eval("function g() { for (var i = 0; i < 10; i++) { debugger; yield i; } }"); |
|
13 g.eval("var it = g();"); |
|
14 assertEq(gw.evalInGlobal("it.next();"), null); |
|
15 |
|
16 dbg.enabled = false; |
|
17 assertEq(g.it.next(), 1); |