async function bad() { throw "no"; } async function main() { try { await bad(); return "unreachable"; } catch (e) { return "caught:" + e; } } var r = null; main().then(v => { r = v; }); __drain(); r