On Feb 11, 2015, at 8:30 AM, Allen Wirfs-Brock wrote:

> TC39 members were aware that changing to using ordinary objects as the 
> prototypes of the legacy built-ins was a breaking change (for example, it 
> changes the prototypes {}.toString value). What we agreed to do was to make 
> that change but to undo it for individual legacy built-ins if we discovered 
> that it would cause actual significant web breakage.  We discovered that this 
> was the case for Function.prototype and so it remains a function instances in 
> the ES6 spec
> 
> What we need for the other legacy built-ins is real evidence that there is a 
> problem, rather than speculation. Let us know if you are aware of a 
> significant Web site or widely used framework that depends upon 
> String.prototype being a String instance  or any other similar dependency.
> 

So:

> @awbjs example:
> 
> a.reduce((c,v)=>{if (!~c.indexOf(v)) return c. concat(v)else return c}, 
> Array.prototype)
> 
> Original Tweet: https://twitter.com/getify/status/568440928433602560
> 

and

> @awbjs @getify I'd say specially for `.concat()` is quite common pattern so 
> instead of `[].concat()` few of us go `Array.prototype.concat`
> 
> Original Tweet: https://twitter.com/WebReflection/status/568443370089123842


This looks like the sort of evidence we asked for.

None of the fixes I have thought of are as simple as simply saying that 
Array.prototype is an Array exotic object.

So unless, I hear an uproar in the next few hours, I'm going to change the ES6 
draft to say that.

Allen

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to