00:31:45  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:38:53  * keith_millerjoined
00:58:59  * cybaijoined
01:03:07  * cybaiquit (Ping timeout: 246 seconds)
01:48:15  * aki_joined
01:49:23  * akirosequit (Ping timeout: 255 seconds)
01:49:23  * aki_changed nick to akirose
01:51:19  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:09:42  * cybaijoined
02:14:39  * cybaiquit (Ping timeout: 252 seconds)
02:18:07  * isHavvyquit (Ping timeout: 244 seconds)
02:20:38  * Havvyjoined
02:50:13  * keith_millerjoined
03:05:43  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:12:33  * cybaijoined
03:16:58  * cybaiquit (Ping timeout: 250 seconds)
03:54:22  * aki_joined
03:55:07  * akirosequit (Ping timeout: 240 seconds)
03:55:07  * aki_changed nick to akirose
04:02:13  * h11quit (Quit: The Lounge - https://thelounge.chat)
04:02:56  * h11joined
04:22:44  * h11quit (Quit: The Lounge - https://thelounge.chat)
04:23:22  * h11joined
05:21:40  * jmdyckquit (Remote host closed the connection)
05:22:45  * cybaijoined
05:32:40  * kpattich_joined
05:32:59  <rkirsling>is the order taken as meaningful in text like this?
05:33:00  <rkirsling>https://tc39.github.io/ecma262/#sec-primary-expression-regular-expression-literals-static-semantics-early-errors
05:33:00  <rkirsling>(i.e. do we consider *which* early error gets prioritized in `/+/gg` to be specified?)
05:35:47  <rkirsling>I'm assuming not, because V8 and SM both complain about the flags first, and the reason I'm even asking is because I'm playing the video game called "JSC early error whac-a-mole"
05:36:29  <rkirsling>(it's easily as fun as a Zachtronics title 😂)
05:59:27  <Bakkot>rkirsling, I would say no, since it does not define semantics differentiating between those two early errors
06:00:22  <rkirsling>Bakkot: hmm. I'd ask for a counterexample but then I kind of doubt one exists?
06:01:04  <rkirsling>since I suppose one might view it as needlessly specific
06:01:11  * aki_joined
06:01:49  <Bakkot>there is a bit of an edge case related to this: `0++` is, for some reason, an early Reference Error rather than a Syntax Error, so I am not sure what `try { eval('0++; /r/gg;'); } catch (e) { console.log(e.name); }` should print
06:02:16  * akirosequit (Ping timeout: 255 seconds)
06:02:17  * aki_changed nick to akirose
06:02:26  <rkirsling>interesting
06:02:48  <rkirsling>it's like a static race condition lol
06:05:20  <Bakkot>in trying to determine if this is specified I have not yet been able to find an answer, but I did learn that `eval` acts as identity for anything which is not of Type string
06:05:25  * kpattich_quit (Ping timeout: 255 seconds)
06:05:34  <Bakkot>i.e. `x = {}; eval(x) === x` is true
06:07:40  <rkirsling>huh. fair enough.
06:58:56  <ljharb>anyone have any suggestions for how to most cleanly handle this? https://github.com/tc39/ecma262/pull/702#discussion_r263966562
07:01:42  * kpattich_joined
07:27:45  * kpattich_quit (Remote host closed the connection)
07:28:02  * kpattich_joined
07:38:17  * kpattich_quit (Remote host closed the connection)
07:41:14  * cybaiquit (Remote host closed the connection)
07:45:48  * kpattichajoined
07:48:29  * kpattichaquit (Read error: Connection reset by peer)
07:49:10  * kpattichajoined
07:54:17  * kpattichaquit (Quit: Leaving)
08:06:16  * aki_joined
08:07:22  * akirosequit (Ping timeout: 255 seconds)
08:07:23  * aki_changed nick to akirose
09:10:40  * cybaijoined
09:14:52  * jwaldenquit (Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805])
09:15:19  * cybaiquit (Ping timeout: 255 seconds)
09:47:41  * Nimelrianjoined
10:12:00  * aki_joined
10:12:58  * akirosequit (Ping timeout: 246 seconds)
10:12:58  * aki_changed nick to akirose
10:20:26  * cybaijoined
10:24:47  * cybaiquit (Ping timeout: 240 seconds)
11:24:22  * cybaijoined
11:28:48  * cybaiquit (Ping timeout: 250 seconds)
12:07:52  * cybaijoined
12:12:29  * cybaiquit (Ping timeout: 268 seconds)
12:14:42  * jmdyckjoined
12:17:58  * akirosequit (Ping timeout: 245 seconds)
12:18:03  * aki_joined
12:18:27  * aki_changed nick to akirose
12:25:49  <jmdyck>rkirsling: ParseScript() and ParseModule() both say: "If more than one parsing error or early error is present, the number and ordering of error objects in the list is implementation-dependent, but at least one must be present."
12:31:44  <jmdyck>Which I think answers your question
13:10:30  * cybaijoined
14:19:48  * cybaiquit (Remote host closed the connection)
14:24:54  * aki_joined
14:26:09  * akirosequit (Ping timeout: 252 seconds)
14:26:09  * aki_changed nick to akirose
14:41:39  * cybaijoined
15:12:24  * cybaiquit (Remote host closed the connection)
15:41:46  * cybaijoined
15:46:22  * cybaiquit (Ping timeout: 255 seconds)
15:52:48  <devsnek>i don't think any implementations report more than one error
15:53:55  <devsnek>this is interesting though https://gc.gy/19851876.png
16:30:39  * aki_joined
16:31:33  * akirosequit (Ping timeout: 252 seconds)
16:31:33  * aki_changed nick to akirose
16:49:43  * gibson042joined
16:55:42  * gibson042quit (Quit: Leaving.)
17:26:41  <Bakkot>jmdyck: I wonder if the semantics for PerformEval and/or CreateDynamicFunction should be updated with similar wording - currently they just say "if any early errors are detected, throw a SyntaxError or a ReferenceError exception, depending on the type of the exception", which is a little ambiguous because it refers to "the" exception but there can be more than one.
17:38:19  * jmdyckquit (Read error: Connection reset by peer)
17:40:30  * cybaijoined
17:41:23  * jmdyckjoined
17:45:32  * cybaiquit (Ping timeout: 244 seconds)
18:03:40  * Havvyquit (Read error: Connection reset by peer)
18:08:38  * howdoijoined
18:09:57  * Havvyjoined
18:20:02  <jmdyck>Bakkot: yup. And it might be nice to factor out the commonalities, but I think that might be tough.
18:24:29  * cybaijoined
18:28:48  * cybaiquit (Ping timeout: 245 seconds)
18:36:18  * aki_joined
18:37:22  * akirosequit (Ping timeout: 250 seconds)
18:37:23  * aki_changed nick to akirose
19:15:40  * gibson042joined
19:45:35  * _regaddiquit (Quit: ZNC - http://znc.in)
19:46:05  * regaddijoined
19:46:57  <rkirsling>jmdyck: cool, thanks!
19:47:19  <rkirsling>devsnek: also note that the JSC/Ch ReferenceErrors are late ones
19:55:29  * regaddiquit (Quit: ZNC - http://znc.in)
20:01:15  * cybaijoined
20:04:07  * wingoquit (Ping timeout: 240 seconds)
20:05:46  * wingojoined
20:05:52  * cybaiquit (Ping timeout: 245 seconds)
20:13:03  * akleinquit (Ping timeout: 252 seconds)
20:13:16  * akleinjoined
20:17:36  * gibson042quit (Ping timeout: 252 seconds)
20:32:36  * gibson042joined
20:42:01  * aki_joined
20:42:54  * akirosequit (Ping timeout: 252 seconds)
20:42:54  * aki_changed nick to akirose
20:53:03  <devsnek>rkirsling: as in they don't throw on invalid regex?
20:54:59  <rkirsling>devsnek: the right type of error is thrown for `0++` and for `/r/gg` but they're thrown at runtime
20:55:02  <rkirsling>I just put up a fix for early invalid flags: https://bugs.webkit.org/show_bug.cgi?id=195514
20:55:32  <rkirsling>introducing the notion of early ReferenceError at all is still a todo item
20:55:58  <devsnek>that's weird
20:57:44  <rkirsling>yeah the "late SyntaxError" there is surprising
20:58:16  <rkirsling>but my understanding is that "early ReferenceError" is a comparatively new concept
20:58:44  <rkirsling>'twill be fun to address, I expect
20:58:46  * jmdyckquit (Ping timeout: 244 seconds)
21:00:35  * jmdyckjoined
21:02:54  <rkirsling>oh whoa but SM's SyntaxError there is actually for `0++`
21:03:14  <rkirsling>so that too is a bug
21:38:54  * howdoiquit (Quit: Connection closed for inactivity)
21:52:59  * cybaijoined
21:57:34  * cybaiquit (Ping timeout: 250 seconds)
22:01:55  * Nimelrianquit (Ping timeout: 258 seconds)
22:45:02  <devsnek>rkirsling: looks like chakra is an early ReferenceError
22:46:46  <rkirsling>devsnek: hmm...so it is. I thought they didn't have that notion either though 🤔 guess either I was mistaken or it changed recently
22:47:15  <devsnek>0++ is all over the place though https://gc.gy/19876609.png
22:47:33  <devsnek>engine262 uses acorn which considers all early errors syntax errors :(
22:48:01  * akirosequit (Ping timeout: 255 seconds)
22:48:22  * akirosejoined
23:26:09  * cybaijoined
23:30:37  * cybaiquit (Ping timeout: 246 seconds)