Kevin Smith wrote:


    - Promise.cast is renamed to Promise.resolve (remove old
    Promise.resolve)
    - Keep then, reject chain (NOT DEFER, reject!)
    - Renaming .cast thus removes over-wrapping (always-wrap)
    deoptimization in old Promise.resolve

So basically, since September, we've seen:

- A design proposal which achieved "consensus"
- A spec implementation which completely ignored that "consensus"
- And now a third design, which also throws out "consensus" and has been implemented by precisely no-one

And all of this over 200 to 300 LOC.

These shenanigans are deeply disturbing.

I agree. I kept my nose out of it until it was front-and-center on the last day of the last TC39 meeting, and in context of threads here that were pushing (I was on side with you) to add .chain.

The design proposal in September did not have consensus, for real. That proposal was changed after the September meeting (Mark has details). The implementation in V8 then added .chain based on an understanding from the May 2013 meeting (multiple, "Rashomon" views of consensus).

There's still some concern about supporting Promise subclassing, too, but I think it can be handled without controversy (I could be wrong). It entails using the public-named methods (in case of overrides) consistently, and not using internal methods or other such shortcuts some of the time. Basically "always use .then".

Can we regain consensus on the September status quo ante, minus any "do both" half-hearted compromises that don't work? Mark, what do you think?

/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to