00:24:05  * gibson042joined
00:29:08  * gibson042quit (Ping timeout: 276 seconds)
00:41:24  * Jayfluxquit (Ping timeout: 260 seconds)
00:43:07  * gibson042joined
00:43:58  * Jayfluxjoined
00:43:58  * Jayfluxquit (Changing host)
00:43:58  * Jayfluxjoined
00:56:49  * Jayfluxquit (Quit: Leaving)
01:47:26  * keith_millerjoined
01:50:50  * keith_mi_quit (Ping timeout: 255 seconds)
02:08:15  * AtumTquit (Remote host closed the connection)
02:10:11  <jschoi>Sorry, I have another question about proposal writing, this one about the main specification. I’m trying to understand _In_ in `Expression[In, Yield, Await]`. I understand that it is true as long as the expression is a descendant of parentheses, WithStatement, ReturnStatement, template literals, ExpressionStatement, and so on…But when is it ever false?
02:10:50  <jschoi>In other words, what is the function of `In`?
02:20:08  * keith_millerquit (Read error: Connection reset by peer)
02:20:51  * keith_millerjoined
02:31:46  <jmdyck>jschoi: To find when it's false, scan the spec for ~In.
02:32:11  <jmdyck>You'll find it in certain right-hand-sides of IterationStatement.
02:32:39  <jschoi>Oh, right; thanks.
02:36:06  <jmdyck>To find its function, scan for +In or ~In where it's the first thing in a right-hand-side. I think the only one is a +In in RelationalExpression.
02:37:06  <jmdyck>Thus: +In allows RelationalExpressions of the form `X in Y`; ~In disallows them.
02:44:46  * gskachkovquit (Ping timeout: 256 seconds)
02:45:23  <jschoi>Thanks!
02:45:32  <jmdyck>no problem.
03:05:46  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:09:34  * keith_millerjoined
03:56:38  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:01:50  * keith_millerjoined
04:02:29  * keith_millerquit (Client Quit)
04:03:58  * keith_millerjoined
05:05:45  * jmdyckquit (Remote host closed the connection)
05:14:41  * caridyjoined
05:14:49  * caridyquit (Remote host closed the connection)
05:15:18  * caridyjoined
05:15:55  * bakkot_joined
05:20:07  * caridyquit (Ping timeout: 260 seconds)
06:08:15  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:11:17  * keith_millerjoined
07:43:50  * gskachkovjoined
07:53:41  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:28:50  * keith_millerjoined
08:32:33  * gskachkovquit (Ping timeout: 248 seconds)
08:36:44  * not-an-aardvarkquit (Quit: Connection closed for inactivity)
08:57:24  * akleinquit
08:57:42  * akleinjoined
09:09:46  * TabAtkinsquit
09:10:05  * TabAtkinsjoined
09:11:30  * bretquit
09:13:04  * bretjoined
09:16:30  * samthquit
09:16:54  * samthjoined
09:24:31  * bterlsonquit
09:24:49  * bterlsonjoined
09:48:11  * fletquit
09:48:35  * fletjoined
11:08:10  * thejameskylequit
11:08:27  * thejameskylejoined
11:11:11  * maggiepintquit
11:11:29  * maggiepintjoined
11:25:08  * mylesborinsquit (Quit: farewell for now)
11:25:38  * mylesborinsjoined
11:55:25  * AtumTjoined
13:11:56  * bradleymeckjoined
13:23:13  * jmdyckjoined
13:37:47  * alextesquit (Read error: Connection reset by peer)
13:43:41  * wycatsquit
13:44:33  * wycatsjoined
13:47:13  * bradleymeckquit (Quit: bradleymeck)
14:02:01  * alextesjoined
14:03:13  * mathiasbynensquit
14:03:37  * mathiasbynensjoined
14:06:01  * ebrynquit
14:06:20  * ebrynjoined
14:09:18  * bradleymeckjoined
14:31:32  * zkatquit
14:31:56  * zkatjoined
14:43:10  * bradleymeckquit (Quit: )
15:06:02  * AtumT_joined
15:08:29  * bradleymeckjoined
15:09:07  * AtumTquit (Ping timeout: 256 seconds)
15:18:37  * AtumTjoined
15:20:15  * AtumT_quit (Ping timeout: 256 seconds)
16:20:35  * Wizekquit
16:21:46  * Wizekjoined
16:21:49  <jschoi>The static semantic rule `Contains()` is implicitly defined for many productions (https://tc39.github.io/ecma262/#sec-static-semantic-rules). It is is overridden by certain syntax such as function definitions (https://tc39.github.io/ecma262/#sec-function-definitions-static-semantics-contains), which notes, “Static semantic rules that depend upon substructure generally do not look into function definitions.” But when
16:21:49  <jschoi>is `Contains()` actually used? I see many uses for another static semantic rule, `ContainsExpression()`, about whose relationship with `Contains()` I am uncertain. But I can find no such uses for `Contains()` itself.
16:31:43  * caridyjoined
16:31:44  * caridyquit (Remote host closed the connection)
16:49:32  * jschoiquit
16:49:44  * jschoijoined
16:51:35  <jmdyck>'Contains' isn't invoked with prefix-parenthesis syntax.
16:52:01  <jmdyck>It's invoked with infix syntax.
16:52:48  <jmdyck>E.g. https://tc39.github.io/ecma262/#sec-object-initializer-static-semantics-computedpropertycontains
16:56:20  * bradleymeckquit (Quit: bradleymeck)
17:05:37  * bradleymeckjoined
17:12:53  * caridyjoined
17:13:01  * caridyquit (Remote host closed the connection)
17:13:09  * caridyjoined
17:24:54  <jschoi>jmdyck: Aha, thank you.
17:47:05  * caridyquit (Remote host closed the connection)
17:47:38  * caridyjoined
18:17:33  * bradleymeckquit (Quit: bradleymeck)
18:25:37  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:50:33  * bradleymeckjoined
19:27:15  * keith_millerjoined
19:28:24  * jwaldenjoined
20:01:58  * jwaldenquit (Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805])
20:03:06  * jwaldenjoined
20:05:57  * gskachkovjoined
21:02:41  * ChanServquit (shutting down)
21:10:40  * ChanServjoined
21:15:57  * jwaldenquit (Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805])
21:25:37  * kverrierjoined
21:29:47  * jwaldenjoined
22:02:36  * not-an-aardvarkjoined
22:12:56  <jschoi>Are there any other static semantic rules that are invoked with infix syntax, or is this unique to just `Contains`? It might be nice if the specification mentioned that it does this…
23:14:25  * bradleymeckquit (Quit: bradleymeck)
23:15:48  <bterlson>jschoi: static semantics are syntax-directed operations, usually(?), so https://tc39.github.io/ecma262/#sec-algorithm-conventions-syntax-directed-operations applies
23:15:56  <bterlson>not sure if that covers what you're asking though
23:16:34  <jschoi>Yes, I’m referring to that section. I don’t see it mentioning that `Contains` uses infix notation while all other rules use prefix notation…
23:17:39  <bterlson>ahh I see what you're saying
23:18:04  <bterlson>why `if PROD contains OTHER_PROD` vs `if Contains of Prod passing OTHER_PROD as the parameter`
23:18:12  <jschoi>Yes.
23:18:20  <bterlson>historical special case
23:18:24  <bterlson>I'm looking at unifying that now
23:18:33  <bterlson>well once I'm all done with the ES2018 PRs
23:18:36  <jschoi>Nice. 👍🏻
23:18:55  <bterlson>new syntax will be something like PROD.contains(OTHER_PROD)
23:19:20  <bterlson>(and clicking on contains will show a list of all productions which implement an overridden contains definition)
23:20:09  <bterlson>so don't worry too much about it in your proposals, there will be changes here in the next cycle
23:21:00  <jschoi>Excellent! That’s another point of pain I’ve been having.
23:21:08  <jschoi>Er, I mean it solves the pain point.
23:21:59  <jschoi>I do have some ideas for other proposals, so this is good to know.
23:34:17  * bradleymeckjoined
23:35:58  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:57:34  * bradleymeckquit (Quit: bradleymeck)