On Oct 2, 2010, at 6:49 AM, Jorge wrote:

> 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.

It's not clear from kangax's blog post that an array with an extra object on 
its prototype chain before Array.prototype is enough, but if it is, then yes: 
Array.create is simpler and more direct than using proxies.


> -no need to learn new concepts ( we're used to Object.create() already )

There's definitely a new concept here. Right now you can't create an array 
instance whose [[Prototype]] is not some Array.prototype. Array.create changes 
that.


> -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.

"3-liner", "3 minutes" and "just" need demonstration. Are you writing the code 
and spec patches? Talk is cheap :-|. Arrays are highly optimized in modern 
engines (up to some array sparseness limit). Adding a prototype object 
shouldn't hurt if the new proto-object contains no indexed properties, though.

/be

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

Reply via email to