tc39 / proposal-set-methods

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

Stage 4 tracking #78

Closed bakkot closed 1 month 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 8 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 8 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 8 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 8 months ago

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

Nico314159 commented 8 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 8 months ago

Pretty arbitrary i think.

bakkot commented 8 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 8 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 8 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 7 months ago

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

bakkot commented 7 months ago

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

mhkeller commented 5 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 4 months ago

Implemented in Kiesel, thanks @sno2!

controversial commented 2 months ago

Shipping in Firefox 127

Nico314159 commented 1 month ago

TypeScript has support now!

ljharb commented 1 month ago

This has stage 4.