Can anyone explain why the last example prints 42 instead of Promise { ... }?
let f = async function () { return 42; }
let g = async function () { return new Promise((resolve, reject) => resolve(42)); }
f()
-> Promise { ... }
await f()
-> 42
g()
-> Promise { ... }
await g()
-> 42
It seems like the promise created by async is somehow being merged with the promise created and returned inside g()?