
Don't let TC39 use smoosh or smooshMap - voctor
https://github.com/staltz/prevent-smoosh
======
alexbanks
> The purpose of this library is to prevent TC39 from adding
> Array.prototype.smoosh and Array.prototype.smooshMap as replacement names
> for Array.prototype.flatten and Array.prototype.flatMap. They usually don't
> listen to popular votes, but they do listen to the Web and usages of
> JavaScript in the wild. So here's your chance to vote with your code in
> production. Put this library in your production large-scale website (it's
> very tiny! won't hurt) and we'll have a compelling case for TC39 not to
> break backwards compatibility.

Why do I not want TC39 to use smoosh or smooshMap?

~~~
aspirin
It's a form of protest. If both flatMap and smooshMap are seen as equally
"breaking the web", maybe TC39 will coose the less insane name for the method.

~~~
mattbierner
Except one is a real problem and the other is an invented problem created only
to cause more problems

------
olliej
Cool, go back and tell the library authors to stop putting bullshit on native
objects, or get them to put namespace prefixes when they do. Don’t blame TC39
for doing their jobs: not breaking existing content.

Blame the authors of the frameworks that force js into a terrible corner

------
TheCoelacanth
If you do this they will just use some other ridiculous name like 'squash'.
Instead you need to check for the presence of any other TC39 feature and then
if any are present, break if flatten isn't present.

------
cpburns2009
What is TC39? And what is smoosh?

~~~
WorldMaker
Technical Committee 39 of ECMA [1] is the governing board for the living
ECMAScript standards documents, which influence the direction of the language
we more often call JavaScript.

There's a current TC39 proposal [2] (at Stage 3, which is the discovery stage
to gauge feasibility in browsers) to add officially to the language standard
`Array.prototype.flatten()` (to flatten an array like `[[1, 2], 3, [4, 5]]` to
`[1, 2, 3, 4, 5]`) and `Array.prototype.flatMap` (to `flatten().map()` as a
single operation).

Because browser vendors discovered some libraries in the wild (8+ year old
versions of MooTools) install their own incompatible to the new spec version
of `Array.prototype.flatten` that does something different from the array
flattening above, there is a discussion (as PR) [3] to avoid breaking ancient
websites by choosing a new name for the proposed `Array.prototype.flatten`, in
the case of the PR `Array.prototype.smoosh`. (For consistency it then renames
`Array.prototype.flatMap` to `Array.prototype.smooshMap`.)

Other names are being discussed as well in the PR, and the TC39 committee has
not yet actually met on the subject at this time, so nothing is quite set in
stone.

[1] [https://github.com/tc39](https://github.com/tc39) [2]
[https://tc39.github.io/proposal-flatMap/](https://tc39.github.io/proposal-
flatMap/) [3] [https://github.com/tc39/proposal-
flatMap/pull/56](https://github.com/tc39/proposal-flatMap/pull/56)

