02:49 | <devsnek> | was it intentional that typeof throws if the reference is in tdz instead of being 'undefined' |
02:54 | <ljharb> | p sure yes |
03:00 | <rkirsling> | yeah that doesn't seem like it'd be an oversight |
03:01 | <devsnek> | i don't think its a bug or anything |
03:01 | <devsnek> | just sufficiently corner case enough that you never know |
08:29 | <ystartsev> | in this section of the spec: https://tc39.es/ecma262/#table-37 in the evaluate part -> does transitively mean to maintain relationships across objects? |
08:29 | <ystartsev> | or is it something else? |
17:55 | <devsnek> | browser debuggers say that Math.random() has no side effects |
17:56 | <Bakkot> | that's arguably true |
17:56 | <devsnek> | yeah i mean |
17:56 | <devsnek> | it doesn't modify any js state |
17:56 | <Bakkot> | (it would be a lot more true if it were a CSPRNG) |
17:56 | <devsnek> | but it is confusing for the preview to show one thing |
17:56 | <devsnek> | and then hitting enter to show another |
17:56 | <Bakkot> | `new Date` has the same problem |
17:56 | <devsnek> | nice catch |
17:57 | <devsnek> | dates and random are the only two things where that can happen i think |
17:57 | <Bakkot> | among JS builtins, yeah |
17:58 | <Bakkot> | https://github.com/google/caja/wiki/SES#no-monkey-patching-primordials |
18:04 | <devsnek> | Bakkot: https://chromium-review.googlesource.com/c/v8/v8/+/2207805 |
18:04 | <bradleymeck> | ystartsev: my understanding is it is being used to mean a deep ordered graph traversal of all the dependency graph rather than a shallow traversal (in post order in this case, though TLA gets a little bit interesting here). i do know transitive is often used in JS package management terms to describe a nested/implicit dependency |
18:05 | <devsnek> | yeah i think its being used here like module a -> module b -> module c |
18:05 | <devsnek> | module a evaluates module c |
21:44 | <devsnek> | node 14.3.0 is here |
21:44 | <devsnek> | with --experimental-top-level-await |