"not a Date object" vs. "not an object with [[Class]] of ''Date''"

Jorge jorge at jorgechamorro.com
Sat Oct 2 06:49:49 PDT 2010

On 02/10/2010, at 15:29, Brendan Eich wrote:
> On Sep 6, 2010, at 1:43 AM, Dmitry A. Soshnikov wrote:
>> For what to create a proxy? It's only for catch-traps (yes, it may be used additionally to create a _catcher_ with "Array" [[Class]], but without additions -- i.e. if a user wants just to inherit from Array.prototype and to have all arrays' stuff -- proxies are not needed to him).
> Proxies are required to update length to be one greater than index (property name-string P such that ToString(ToUint32(P)) == P and ToUint32(P) is not 2^32 - 1) when setting an indexed property. Array's magic [[Put]] is not inherited.

Why not simply spec an Array.create() ?

-no need to redefine what an array is.
-no need to learn new concepts ( we're used to Object.create() already )
-easy to grasp, expected behaviour. 
-it's a 3-liner that would take no more than 3 minutes to implement in JS in any current UA.
-it would just need to be in the ES specs.

More information about the es-discuss mailing list