00:00:26  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:10:22  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:15:56  * mattijsjoined
00:16:49  * keith_millerjoined
00:27:09  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:28:14  * mattijsjoined
00:45:26  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:55:03  * mattijsjoined
00:58:59  * mattijsquit (Client Quit)
01:03:51  <devsnek>has tc39 ever had like observers or something similar at meetings
01:06:03  <ljharb>sure
01:13:33  * mattijsjoined
01:15:13  * mattijs_joined
01:16:42  <devsnek>have they ever been high school students 👀
01:17:35  * mattijsquit (Ping timeout: 240 seconds)
01:17:37  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:19:15  <ljharb>lol no idea, i would expect concerns about the liability for a minor (similar ones to hiring interns)
01:22:04  <devsnek>oof
01:22:50  <devsnek>i'm doing an independent study on programming language design/syntax next year and i was hoping to use it as an excuse to observe a tc39 meeting hehe
01:26:39  <Bakkot>We do publish notes!
01:27:18  <Domenic>@supports <--> new Function()
01:27:19  <devsnek>yea but that doesn't have the same cool-factor :)
01:27:41  <devsnek>Domenic: yea i dunno what happened in my brain to come up with that
01:27:49  <devsnek>was silly
01:36:23  <bterlson>devsnek: regarding observing a tc39 meeting, I ask Ecma what they think.
01:36:32  <ljharb>^ good idea
01:36:32  <bterlson>I *can
01:37:09  <devsnek>this? http://www.ecma-international.org/contact/Contact.html
01:37:55  <devsnek>oh you can
01:37:58  <devsnek>thank you :)
01:38:01  <bterlson>Nah I'd just email Istvan (the secretariat)
01:38:08  <bterlson>if you pm me your email I can cc you
01:38:25  <devsnek><me@gus.host>
01:46:11  * mattijs_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:10:17  * keith_millerjoined
02:12:22  * keith_mi_joined
02:13:37  * jwaldenquit (Ping timeout: 265 seconds)
02:16:01  * keith_millerquit (Ping timeout: 248 seconds)
02:20:30  * jwaldenjoined
03:02:38  * keith_mi_quit (Remote host closed the connection)
03:02:50  * keith_millerjoined
03:22:25  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:30:17  * keith_millerjoined
03:50:58  * keith_millerquit (Read error: Connection reset by peer)
03:52:20  * keith_millerjoined
04:54:01  <Domenic>Does anyone know what the return value of an iterator's return() is used for
04:58:48  <devsnek>whats that?
04:58:58  <devsnek>isn't there just the iteratorRecord?
05:11:08  <not-an-aardvark>Domenic: I think it's observable as a `{ value: theReturnValue, done: true }` object if invoked manually by user code, although it doesn't seem useful in general because the caller could just construct an object like that themselves. I would imagine it exists as a parallel for using `return` in a generator, which creates the same object.
05:11:44  <not-an-aardvark>(Having said that, I'm not sure I understood your question.)
05:11:47  <Domenic>I'm wondering why IteratorClose() enforces that it be an object
05:11:57  <Domenic>And if I'm manually creating an iterator, what values should I put in there
05:18:04  <jmdyck>Does seem odd that IteratorClose() would enforce it being an Object when it doesn't escape.
05:19:44  <not-an-aardvark>Hmm, I'm not sure. Based on the behavior of `(function*() {})().return()` (which returns `{ value: undefined, done: true }`), my guess is that iterators are always supposed to return a `value, done` object from `return`. Maybe the error is intended to ensure that all user-provided iterators return an object like that to avoid surprises when manually invoked, even though the return value isn't used by
05:19:45  <not-an-aardvark>IteratorClose.
05:21:13  <jmdyck>https://tc39.github.io/ecma262/#sec-iterator-interface says that `return` must return an IteratorResult.
05:22:23  <jmdyck>and says what the nature of that result typically is
05:24:43  * jmdyckquit (Remote host closed the connection)
05:25:58  <Domenic>But, what if my iterable has more data that could be iterated, if someone acquired a new iterator
05:26:03  <Domenic>Then should I still say "done"?
05:26:15  <devsnek>yea
05:26:18  <Domenic>(say done: true, rather)
05:26:21  <devsnek>it's not finished, it's done
05:26:23  <Domenic>I guess the question is whether "done" is scoped to the iterator or iterable
05:26:46  <devsnek>I assume that's why done was chosen instead of finished
05:30:48  <not-an-aardvark>If I have an array I can create an infinite number of iterators from it, all of which will provide some values and then be "done". So I think "done" refers to the iterator.
05:31:35  <devsnek>that's my point hehe
05:32:17  <Domenic>I think done and finished are synonyms, and we shouldn't be reading too much into exact wording choice besides that one was shorter.
05:32:31  <devsnek>done and finished actually aren't synonyms
05:32:34  <Domenic>not-an-aardvark: that's pretty good
05:32:47  <ljharb>to me "done" just means "i'm not going to give you any more values"
05:32:52  <ljharb>so yeah, it'd be the iterator, not the iterable
05:32:52  <Domenic>http://www.thesaurus.com/browse/done?s=t
05:32:58  <Domenic>" adj accomplished, finished "
05:33:03  <devsnek>done doesn't imply completion in the english language
05:33:07  <Domenic>It definitely does....
05:33:19  <ljharb>specifically it implies completion of a task
05:33:21  <ljharb>it's done iterating
05:33:26  <ljharb>there's nothing left to yield
05:33:26  <Domenic>http://www.dictionary.com/browse/done "completed; finished; through"
05:33:49  <not-an-aardvark>I think completion is actually the only thing that "done" implies
05:33:52  <ljharb>but not-an-aardvark's comment is spot on, i think - the iterable can always be freshly iterated, it's the iterator itself that's stateful
05:34:02  <ljharb>(and thus that can become "done")
05:34:07  <Domenic>Well, in my case the iterable is stateful (it's a stream)
05:34:19  <Domenic>But the fact that it's iterator-scoped in other cases convinces me it should be in this case too
05:34:26  <devsnek>that's what I was trying to say, grammar aside ;(
05:34:44  <ljharb>fair; it could also make sense that an iterator advancing also causes all new iterators, or all iterators including existing ones, to advance too
05:35:28  <ljharb>like 10 iterators on an array should all advance independently, but 10 iterators on a queue, perhaps, should always provide the "next" item, which would maybe mean that they're sharing state and would all become "done" together?
05:35:53  <devsnek>just make one iterator and have the symbol.iterator method return it?
05:36:54  <ljharb>you could totally do that too
05:36:59  <not-an-aardvark>If the stream is consuming a resource (e.g. a file handle) that need to be closed afterwards, it seems like it would be ergonomic for `return` to automatically close the resource. But I'm not sure that fits with the model that multiple iterators can be created after a `return`.
05:37:10  <ljharb>(but then you have a communication channel between all consumers of the iterator beyond just calling .next())
05:38:00  <not-an-aardvark>I can imagine use cases where that would be desirable (e.g. if you don't want to process elements twice)
05:38:07  <devsnek>node streams just attach next to whenever the next value comes through although that's async iterator
05:39:29  <Domenic>not-an-aardvark: yeah that's also something I'm debating
05:39:41  <Domenic>https://github.com/whatwg/streams/issues/778#issuecomment-371717821
05:40:37  <not-an-aardvark>I suppose if each object is intended to be permanently consumed after yielding it once, it might be better for an API to just return an iterator rather than an iterable.
05:41:20  * caridyquit (Remote host closed the connection)
05:41:34  <not-an-aardvark>Or devsnek's idea of always returning the same iterator would also work, and would allow automatic resource cleanup when `.return` is called.
05:41:49  * caridyjoined
05:42:02  <ljharb>returning the same === iterator wouldn't be a good idea tho unless it was frozen
05:42:19  * caridyquit (Remote host closed the connection)
05:42:58  * caridyjoined
05:43:43  <Domenic>I'm liking the same iterator idea
05:44:00  <Domenic>(I don't care about communications channels, plenty of APIs return the same object more than once.)
05:44:11  <not-an-aardvark>ljharb: Well, I suppose you could return different iterators that use shared state to get the next value
05:44:27  <devsnek>do you want multiple consumers to get the same data or fight for data
05:44:29  <Domenic>document.body, oh no, it's a communications channel
05:44:39  <Domenic>self.Math, oh no.
05:44:43  <ljharb>Domenic: sure, that's fair.
05:44:51  <devsnek>wouldn't my idea make them fight for .next
05:45:06  <ljharb>wouldn't it be more optimizeable for impls tho if the object was frozen?
05:45:21  <ljharb>especially for `.next` calls which would then not be interceptible
05:45:25  <ljharb>¯\_(ツ)_/¯ tho
05:46:04  <devsnek>node streams have async iterators
05:46:06  <Domenic>Nah implementations inline calls all the time on non-frozen objects. ICs!!
05:46:16  <ljharb>kk
05:46:25  <devsnek>I haven't looked into how they behave but you can probably seek inspiration from them
05:52:04  <not-an-aardvark>This is also similar to the idea that array iterators are also iterable. (I think their `Symbol.iterator` method is just `return this`, which is another way of always returning the same iterator with the downside that your "iterable" also needs to have a `.next` method.)
05:54:21  * caridy_joined
05:54:21  * caridyquit (Remote host closed the connection)
06:00:15  * caridy_quit (Remote host closed the connection)
06:01:19  * caridyjoined
06:20:54  * caridyquit (Remote host closed the connection)
06:21:51  * caridyjoined
06:21:55  * caridyquit (Read error: Connection reset by peer)
06:22:50  * caridyjoined
06:32:44  * caridyquit (Remote host closed the connection)
06:33:57  * caridyjoined
06:37:57  * caridy_joined
06:38:00  * caridyquit (Remote host closed the connection)
06:38:00  * caridy_quit (Read error: Connection reset by peer)
06:38:28  * caridyjoined
06:40:30  * caridy_joined
06:40:30  * caridyquit (Remote host closed the connection)
06:46:55  * caridy_quit (Remote host closed the connection)
06:47:47  * caridyjoined
06:57:35  * jwaldenquit (Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805])
07:10:30  * caridyquit (Remote host closed the connection)
07:11:27  * caridyjoined
07:11:31  * caridyquit (Read error: Connection reset by peer)
07:12:20  * caridyjoined
07:26:51  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:28:25  * keith_millerjoined
07:47:10  * caridyquit (Remote host closed the connection)
07:48:56  * caridyjoined
07:50:36  * caridyquit (Remote host closed the connection)
07:51:06  * caridyjoined
08:18:04  * caridyquit (Remote host closed the connection)
08:18:33  * caridyjoined
08:31:51  * caridyquit (Remote host closed the connection)
08:32:59  * caridyjoined
08:34:28  * caridyquit (Remote host closed the connection)
08:34:59  * caridyjoined
08:53:54  * caridyquit (Remote host closed the connection)
08:54:24  * caridyjoined
08:59:21  * caridy_joined
08:59:21  * caridyquit (Remote host closed the connection)
09:11:43  * caridy_quit (Remote host closed the connection)
09:13:06  * not-an-aardvarkquit (Quit: Connection closed for inactivity)
09:13:30  * caridyjoined
09:16:57  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:30:50  * caridyquit (Remote host closed the connection)
09:31:42  * caridyjoined
09:31:51  * caridyquit (Remote host closed the connection)
09:32:27  * caridyjoined
09:36:49  * caridyquit (Remote host closed the connection)
09:37:58  * caridyjoined
10:13:22  * caridyquit (Remote host closed the connection)
10:14:17  * caridyjoined
10:19:19  * STRMLquit (Ping timeout: 260 seconds)
10:24:17  * STRMLjoined
10:55:43  * caridyquit (Remote host closed the connection)
10:55:59  * keith_millerjoined
10:56:35  * caridyjoined
11:03:08  * caridyquit (Remote host closed the connection)
11:03:37  * caridyjoined
11:15:57  * caridyquit (Remote host closed the connection)
11:16:56  * caridyjoined
11:16:58  * caridyquit (Read error: Connection reset by peer)
11:17:46  * caridyjoined
11:25:11  * mylesborinsquit (Quit: farewell for now)
11:25:42  * mylesborinsjoined
11:41:17  * caridyquit (Remote host closed the connection)
11:41:49  * caridyjoined
11:56:24  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:13:59  * keith_millerjoined
12:14:10  * caridyquit (Remote host closed the connection)
12:14:56  * caridyjoined
12:25:34  * AtumTjoined
12:43:54  * caridyquit (Remote host closed the connection)
12:45:30  * caridyjoined
12:51:10  * caridyquit (Remote host closed the connection)
12:52:21  * caridyjoined
12:53:46  * caridyquit (Remote host closed the connection)
12:54:24  * caridyjoined
12:55:48  * caridyquit (Remote host closed the connection)
12:56:37  * caridyjoined
13:04:42  * caridyquit (Remote host closed the connection)
13:05:49  * caridyjoined
13:15:06  * jmdyckjoined
13:17:59  * caridyquit (Remote host closed the connection)
13:18:57  * caridyjoined
13:19:00  * caridyquit (Read error: Connection reset by peer)
13:19:50  * caridyjoined
13:34:26  * caridyquit (Remote host closed the connection)
13:35:58  * caridyjoined
13:39:45  * caridyquit (Remote host closed the connection)
13:40:55  * caridyjoined
14:01:30  * caridyquit (Remote host closed the connection)
14:01:56  * caridyjoined
14:03:10  <gsathya>anyone know why https://tc39.github.io/ecma262/#sec-iterabletolist doesn't call IteratorClose?
14:07:57  * caridy_joined
14:07:57  * caridyquit (Remote host closed the connection)
14:08:07  * caridy_quit (Remote host closed the connection)
14:08:36  * caridyjoined
14:15:52  * caridyquit (Remote host closed the connection)
14:17:26  * caridyjoined
14:21:25  * caridy_joined
14:21:27  * caridy_quit (Read error: Connection reset by peer)
14:21:27  * caridyquit (Remote host closed the connection)
14:21:56  * caridyjoined
14:24:41  * caridyquit (Remote host closed the connection)
14:25:29  * caridyjoined
14:25:42  * caridyquit (Remote host closed the connection)
14:26:40  * caridyjoined
14:31:30  <gsathya>(I'm assuming it's because IteratorClose is called only if the consumer of the iterator throws)
14:32:23  * caridyquit (Remote host closed the connection)
14:34:19  * caridyjoined
14:38:25  * gskachkov_joined
14:42:54  * caridyquit (Remote host closed the connection)
14:43:53  * caridyjoined
14:52:09  * howdoijoined
15:04:12  <Domenic>Yeah that seems right. Only for abrupt completions. If the iterator gets to the end itself it's assumed it does its own cleanup after yielding the last item I suppose.
15:20:04  * rwaldronjoined
15:31:44  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:34:23  <gsathya>thanks Domenic!
16:21:46  * mattijsjoined
16:25:46  * caridyquit (Remote host closed the connection)
16:26:10  * caridyjoined
16:32:17  * gskachkov_quit (Quit: gskachkov_)
16:32:38  * gskachkov_joined
16:33:07  * gskachkov_quit (Client Quit)
16:37:42  * gskachkov_joined
16:40:00  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:43:53  * keith_millerjoined
16:44:46  * mattijsjoined
16:48:02  * mattijs_joined
16:48:57  * mattijsquit (Ping timeout: 245 seconds)
17:37:53  * mattijsjoined
17:38:32  * mattijs_quit (Ping timeout: 245 seconds)
18:17:08  * not-an-aardvarkjoined
18:30:14  * gskachkov_quit (Quit: gskachkov_)
18:31:23  * gskachkov_joined
18:39:32  * caridyquit (Remote host closed the connection)
19:08:43  * Fishrock123joined
19:37:19  * AtumTquit (Ping timeout: 252 seconds)
19:46:26  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:52:38  * srl295joined
20:17:01  * gskachkov_quit (Quit: gskachkov_)
20:18:30  * gskachkov_joined
20:28:03  <rwaldron>littledan "How do you make the committee open to feedback while having this sort of culture?" I find that it's often as simple as listening to the feedback, acknowledging it (w/o commitment) and ensuring that the shared perspective will be considered. Sometimes dev just want to be heard.
21:12:21  <devsnek>tc39 and users just need some couples counseling
21:12:45  <devsnek>I think not locking the github issues and just letting people release is a good way
21:12:56  <devsnek>I saw some constructive ideas in that last one
21:13:18  <devsnek>and it's pretty easy to just ignore the not constructive stuff
21:28:42  <rwaldron>devsnek I originally +1'ed closing the issue, but I now believe that was wrong. You're right, it's easy to just ignore the non-sense, and not really worth the sense of developer-hostility that closing issues creates
21:28:47  * jwaldenjoined
21:29:36  <devsnek>even if 1 in 1000 posts is constructive, i think that makes it worth it
21:29:46  <devsnek>that 1 post could be the solution :D
21:30:12  <not-an-aardvark>I get the impression that some committee members considered the name change to be a joke but did not say so explicitly, and so the community thought that the proposal was actually moving forward.
21:37:31  <devsnek>i assumed smoosh was a joke
21:37:53  * mattijsjoined
21:37:57  <devsnek>if people don't know that you guys are like real humans who make jokes though
22:14:04  * rwaldronquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:20:31  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:22:45  * caitpquit (Ping timeout: 256 seconds)
22:23:16  * caitpjoined
22:24:58  * mattijsjoined
22:26:20  * mattijs_joined
22:27:01  * mattijsquit (Read error: Connection reset by peer)
22:27:11  * mattijsjoined
22:27:21  * maggiepintquit (Ping timeout: 256 seconds)
22:27:31  * maggiepint_joined
22:28:25  * ebrynquit (Ping timeout: 256 seconds)
22:28:37  * ebrynjoined
22:29:00  * plumaquit (Ping timeout: 256 seconds)
22:29:00  * thejameskylequit (Ping timeout: 256 seconds)
22:29:12  * thejameskylejoined
22:30:05  * plumajoined
22:30:07  * devsnekquit (Ping timeout: 256 seconds)
22:30:57  * mattijs_quit (Ping timeout: 248 seconds)
22:31:01  * devsnekjoined
23:26:52  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:30:23  * mattijsjoined
23:38:17  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:43:52  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:45:45  * mattijsjoined
23:52:19  * mattijsquit (Quit: My MacBook has gone to sleep. ZZZzzz…)