| // Test that Ion->Baseline in-place debug mode bailout can recover the iterator | |
| // from the snapshot in a for-of loop. | |
| g = newGlobal(); | |
| g.parent = this; | |
| g.eval("Debugger(parent).onExceptionUnwind=(function() {})"); | |
| function throwInNext() { | |
| yield 1; | |
| yield 2; | |
| yield 3; | |
| throw 42; | |
| } | |
| function f() { | |
| for (var o of new throwInNext); | |
| } | |
| var log = ""; | |
| try { | |
| f(); | |
| } catch (e) { | |
| log += e; | |
| } | |
| assertEq(log, "42"); |