01:22
<Domenic>
Statics relying on receiver has always felt nice to me, as a personal fan of type II subclassing (but no further!). However web platform classes don't support it in general and I was never able to muster much interest in improving that.
01:22
<Domenic>
I think the Array.of behavior is bad though, either bite the bullet and be this-dependent, or hard-code something. Don't waffle between them.
11:26
<nicolo-ribaudo>
Being able to use the method without a receiver is nice though, because I can do const { of } = Array and then directly use it (for the people that don't trust "other code" to not mess with built-ins)
11:27
<littledan>
yes, this was a popular thing to do with earlier Promise libraries which ES6 took away...
11:29
<yulia>
not sure we can remove type two anyway..
11:30
<littledan>
I guess the question locally isn't what to do about existing things but what we should do going forward
21:54
<TabAtkins>
Looking over the Yulia/Domenic document, yeah, I support Type I in general for future stuff.
21:55
<TabAtkins>
aka zero magic, just the most basic "you can subclass this and call super()" behavior
21:56
<TabAtkins>
And that, in particular, supports the const {of} = Array use-case without any extra effort, since the implementation would just be hardcoding the constructor to use anyway and doesn't care about the receiver.