At the May 27-29 TC39 meeting we agreed to make this change. Allen
On May 7, 2015, at 2:47 PM, C. Scott Ananian wrote: > Hopefully everyone has had a little bit of time to think over the > issues with Promise.resolve(). > > Last week I proposed three different reasonable semantics for > `Promise.resolve`, none of which involve the `[[PromiseConstructor]]` > internal field: > https://esdiscuss.org/topic/subclassing-es6-objects-with-es5-syntax#content-50 > > I continue to feel that the "no species" proposal is the best > alternative, reasoning that `Promise.resolve` is more like an explicit > constructor than an species-using instance-transformation method. > Here's that proposal again: > >> Promise.resolve(x) >> 1. Let C be the this value. >> 2. If IsPromise(x) is true, >> a. Let constructor be the value of Get(x, "constructor"). >> b. ReturnIfAbrupt(constructor) >> c. If SameValue(constructor, C) is true, return x. >> 3. Let promiseCapability be NewPromiseCapability(C). >> 4. ReturnIfAbrupt(promiseCapability). >> 5. Let resolveResult be Call(promiseCapability.[[Resolve]], undefined, «x»). >> 6. ReturnIfAbrupt(resolveResult). >> 7. Return promiseCapability.[[Promise]]. > > All mentions of [[PromiseConstructor]] should then be > garbage-collected from the spec. > > This simplifies the semantics and fixes the "hidden new.target" > brokenness which affects interoperability with code written in ES5 > syntax. Eliminating "species" here also yields more useful behavior > from `P.resolve` if an subclass sets `P[Symbol.species] !== P`. > > It's my understanding that Mark Miller volunteered to champion the > changes to `Promise.resolve` at the next TC39 meeting. (Thanks, > Mark!). > > I'll update `es6-shim` and `core-js`/`babel` if/when TC39 reaches > consensus on this. > > Thanks! > --scott > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss