onExceptionUnwind-resumption-async.js (564B)
1 load(libdir + "asserts.js"); 2 3 var g = newGlobal({newCompartment: true}); 4 var dbg = Debugger(g); 5 6 g.eval(` 7 async function f() { 8 return e; 9 } 10 `); 11 12 // Just continue 13 dbg.onExceptionUnwind = function(frame) { 14 return undefined; 15 }; 16 g.eval(` 17 var E; 18 f().catch(e => { exc = e }); 19 drainJobQueue(); 20 assertEq(exc instanceof ReferenceError, true); 21 `); 22 23 // Return with resumption value. 24 dbg.onExceptionUnwind = function(frame) { 25 return { 26 return: 10 27 }; 28 }; 29 var val = g.eval(` 30 var val; 31 f().then(v => { val = v }); 32 drainJobQueue(); 33 val; 34 `); 35 assertEq(val, 10);