04:54
<rkirsling>
async function f() { print(x); } f() doesn't throw? 👀
04:54
<rkirsling>
I mean it does in V8 but that's seeming like an engine bug
05:01
<bakkot>
rkirsling: why do you expect it to throw?
05:01
<bakkot>
it returns a rejected promise but that's a different thing
05:01
<bakkot>
I guess more generally: what is the behavior you're seeing and why is it surprising
05:04
<rkirsling>
ohh there's a rejected promise
05:05
<rkirsling>
V8 shouldn't be wrong then, it's just the only one that threw on an unhandled rejection
05:11
<rkirsling>
the problem I'm actually trying to solve is rather different but it's making me question everything I thought I knew about async functions
14:48
<littledan>
Not sure I fully understand. What happens if you call a static function in the class in the decorator? Does it not exist?
The decorator is just a function call at runtime, but if the decorator expression references the class, it is in TDZ. So the case is analogous, just driven to its extreme for decorators since it also affects the protocol.