async-gen-throw-completed.js (469B)
1 var g = newGlobal({ newCompartment: true }); 2 g.eval("async function *f(){}"); 3 var dbg = Debugger(); 4 dbg.addDebuggee(g); 5 dbg.onEnterFrame = function(frame) { 6 frame.onPop = function(completion) { 7 completion.return.unsafeDereference().throw(); 8 return completion; 9 }; 10 }; 11 let caught = false; 12 try { 13 g.f().return(); 14 } catch (e) { 15 caught = true; 16 assertEq(e.message, "Async generator is in invalid state due to debugger interaction"); 17 } 18 assertEq(caught, true);