tc39 / proposal-set-methods

Proposal for new Set methods in JS
https://tc39.github.io/proposal-set-methods/
Other
655 stars 15 forks source link

Stage 4 tracking #78

Closed bakkot closed 4 months ago

bakkot commented 1 year ago

This proposal achieved stage 3 at the November 2022 meeting. This is a tracking issue for getting stage 4.

linusg commented 1 year ago

Initial implementation in LibJS has landed: https://github.com/SerenityOS/serenity/pull/16279 (thanks @IdanHo!)

Nico314159 commented 10 months ago

What exactly can I do as an individual to help this proposal reach stage 4? I ask because this proposal is (no pun intended) in the intersection of the venn diagram for "would be quite useful" and "has a good shot at eventual acceptance". There's a lot of things like operator overloading, pipe operator, Decimal, and Records/Tuples that meet only the first and not the second, but this proposal I have a lot of hope for.

bakkot commented 10 months ago

@Nico314159 The thing which is needed at stage 3 is shipping implementations. There's implementations in all the major browsers, but I believe Chrome and Firefox are waiting for test262 tests before they ship. I've written tests at https://github.com/tc39/test262/pull/3966 but they need review from a maintainer. So, nothing individuals can do right now except contribute to maintainership of test262.

Contributing test262 tests is often a good way to help stage 3 proposals advance. (Or proposals at the new stage 2.7.) In this case they're already written though.

Nico314159 commented 10 months ago

@Nico314159 The thing which is needed at stage 3 is shipping implementations. There's implementations in all the major browsers, but I believe Chrome and Firefox are waiting for test262 tests before they ship. I've written tests at tc39/test262#3966 but they need review from a maintainer. So, nothing individuals can do right now except contribute to maintainership of test262.

Contributing test262 tests is often a good way to help stage 3 proposals advance. (Or proposals at the new stage 2.7.) In this case they're already written though.

Out of curiosity, why is it called stage 2.7?

ljharb commented 10 months ago

It's later than 2, close to 3, but not quite there yet.

Nico314159 commented 10 months ago

It's later than 2, close to 3, but not quite there yet.

But I why specifically .7? Does it have to do with Euler's number? Or is it just an arbitrary choice?

ljharb commented 10 months ago

Pretty arbitrary i think.

bakkot commented 10 months ago

It was the outcome of an extremely tedious discussion, the dozens of pages of notes for which will be published in a couple of weeks if you need a soporific.

Nico314159 commented 10 months ago

It was the outcome of an extremely tedious discussion, the dozens of pages of notes for which will be published in a couple of weeks if you need a soporific.

I genuinely cannot tell if this is a joke or not.

bakkot commented 10 months ago

Alas it is not. TC39 is as susceptible to bikeshedding as any other group. And we do publish transcripts of meetings. We had a little extra time this meeting, which probably contributed to this topic running long.

frou commented 10 months ago

Apparently the new set methods arrived in V8 a couple of days ago, so might show up in Chrome soonish?

bakkot commented 10 months ago

Yup, they should be in Chrome 122, which is stable on Feb 14.

mhkeller commented 7 months ago

Looks like this has shipped in Chrome and Safari and perhaps will come in Firefox 126, which I imagine will ship around May.

linusg commented 7 months ago

Implemented in Kiesel, thanks @sno2!

controversial commented 5 months ago

Shipping in Firefox 127

Nico314159 commented 4 months ago

TypeScript has support now!

ljharb commented 4 months ago

This has stage 4.