11:40
<Andreu Botella>
I just realized that V8 implements async functions as generators
11:42
<Andreu Botella>
I wonder if making generators work with AsyncContext would have any effect on async functions
14:50
<shu>
doesn't... everyone implement async functions as generators?
14:50
<shu>
even transpilers do i thought
14:51
<Andreu Botella>
implementing AsyncContext in V8 is my first time implementing something on a JS engine
14:52
<Andreu Botella>
so this is new to me
14:55
<shu>
ah
14:56
<shu>
basically the suspend/resumption mechanism you need for generators and async functions are the same, so you just build it once
14:56
<shu>
regardless whether a resume point is a yield or an await, still a resume point
14:58
<Andreu Botella>
yeah, I get that
14:58
<Andreu Botella>
I think I might have watched a livestream Yulia did implementing async functions in SM years ago, so it didn't quite come as a shock that this worked that way
14:59
<Andreu Botella>
I just hadn't realized that that would be the case when starting to think about changing generators here
15:03
<littledan>
Yeah, I'm pretty sure the redundancy here is unobservable (the promise reaction will "already" queue up the right AsyncContext)
21:46
<ljharb>
There’s a great babel transform that implements them as purely promises, but only for a lintable subset that excludes some loop patterns. It never got to Babel core tho, sadly.