I'm mostly neutral on this, other than that a stable sort API should exist, and it shouldn't involve changing how the first argument of `Array.prototype.sort` is processed.
On Thu, Mar 17, 2016, 22:20 Bergi <[email protected]> wrote: > Isiah Meadows wrote: > > > A polyfill could check if `A.p.sort` is stable, replacing if necessary, > and > > alias the old one to `A.p.fastSort` if it doesn't exist. > > How does one check/test for the stability of a black-box sort? You > can't, afaik. > > In my opinion, you'll never be able to rely on the stability of > `Array.prototype.sort` because of backward-compatibility with older > implementations where it is unstable. > > As ugly as it might be, I'd recommend a separate > `Array.protytype.stableSort` (with an unambiguous name) therefore that > can be tested for existence and polyfilled in absence. > Or at least we'd need to tag the available implementations explicitly: > ```js > Array.prototype.fastSort[Symbol.isStable] = false; > Array.prototype.stableSort[Symbol.isStable] = true; > Array.prototype.sort[Symbol.isStable] = /* to be chosen by implementer */; > ``` > which has the benefit that a test `if (…sort[Symbol.isStable])` will > yield a falsy default value (`undefined`) in legacy implementations. > > Regards, > Bergi > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

