00:24
<MikeSmith>
gwicke: annevk
01:41
<gwicke>
MikeSmith: thanks, might try again next week
04:36
<annevk>
gwicke: bug in Gecko then
11:47
<annevk>
gwicke: I reopened the bug
15:00
<benjamingr__>
Domenic: I noticed something interesting - `filter` is much harder to implement than `map` with async iterators.
15:01
<benjamingr__>
I have all sorts of pyramids, anywhere I can check an existing implementation?
16:49
<annevk>
gwicke: turns out wanderview already fixed it elsewhere, such a great person
17:27
<Domenic>
benjamingr__: async function* filter(ai, cb) { for await (const e of ai) { if (await cb(e)) { yield e; } } }
17:27
<Domenic>
benjamingr__: can omit the await before cb(e) if you only want sync predicates
17:27
<MikeSmith>
do JavaScript-engine implementations actually ever need to have code that directly corresponds to so ES slots, or are slots just a conceptual feature of the spec
17:28
<MikeSmith>
and of other specs that define things in terms of ES slots
17:28
<benjamingr__>
Domenic: I meant without having async generators - also, I noticed async generators aren't working in babel and they used to - any idea why?
17:28
<Domenic>
benjamingr__: sure, if you only use half the proposal, using the proposal is hard.
17:28
<Domenic>
benjamingr__: no idea
17:29
<Domenic>
MikeSmith: they need to produce all the observable features of the slots existing, so usually the easiest way to implement that is with some kind of slot-like thing (which I know for a fact V8 and JSC have)
17:29
<benjamingr__>
Domenic: well, since I'm doing it to understand the proposal - I think it's fair to place such a constraint on myself.
17:30
<benjamingr__>
Just like implementing map/filter on iterators without having generators.
17:32
<Domenic>
benjamingr__: maybe Babel originally implemented the now-withdrawn observable version of async generators and they never got around to implementing the stage 2 version.
17:36
<MikeSmith>
Domenic: OK, thanks. And the slot stuff came along in ES6 and after, right? I don’t remember anything about it being in ES5.1 or before. Or maybe there was another name previously? hmm, but if so I don’t know what it would have been.
17:36
<Domenic>
MikeSmith: no, it was in ES5, just with a more-confusing name "internal properties" I believe.
17:36
<MikeSmith>
aha
17:37
<MikeSmith>
geez
17:37
<MikeSmith>
OK
17:37
<MikeSmith>
well clearly I was overthinking this
17:37
<MikeSmith>
thanks
17:37
<Domenic>
(It was confusing since they did not behave like properties at all, e.g. no prototypal inheritance.)
17:37
<Domenic>
anytime!
17:37
<MikeSmith>
yup agreed about the old name
17:38
<MikeSmith>
and now that I understand “slots” seems very much the apt name
17:39
MikeSmith
now goes back to reading the spec he was reading before he distracted himself
18:38
<benjamingr__>
Domenic: ah, do you have any presentation about that?
18:39
<benjamingr__>
I was asked to talk about async iterators and to be frank I'm clueless about where things stand in ES, I can give an hour long talk about async iterators in Python but that'd be mega-lame. I want to show off async generators as an alternative to observables for many use cases and as a concurrency primitive on its own.
19:33
<zcorpan>
I unchecked "allow merge commits" for html
19:42
<annevk>
zcorpan: great, we should do that everywhere
19:44
<zcorpan>
i can do that
19:49
<zcorpan>
dnoe
22:18
<MikeSmith>
zcorpan++
22:22
<MikeSmith>
annevk: I wonder if we should now update the TEAM.md to drop the instructions about how to merge a PR branch manually
22:23
<MikeSmith>
anyway, for now let’s see if this thing actually works
22:23
MikeSmith
pushes the green button on libpackage-deprecationmanager-perl
22:23
<MikeSmith>
oofs
22:23
MikeSmith
pushes the green button on libpackage-deprecationmanager-perl
22:23
<MikeSmith>
christ
22:25
<MikeSmith>
hot diggety dog https://github.com/whatwg/html/commit/78806b0a466dd8f1f04fdcd5bc51ca002ccbf31f