async function inner(x) { return x * 2; } async function middle(x) { var r = await inner(x); return r + 1; } async function outer(x) { var r = await middle(x); return r * 3; } var result = null; outer(5).then(v => { result = v; }); __drain(); result