array like objects

Brendan Eich brendan at mozilla.com
Tue Dec 8 11:48:23 PST 2009


On Dec 8, 2009, at 11:38 AM, Mike Samuel wrote:

>> Agreed, but Erik's point here was about instanceof. Not only mutable
>> __proto__, but mutable bindings for constructors, and the issue of  
>> multiple
>> global objects with their unrelated suites of builtin constructors,  
>> make
>> instanceof less than ideal for deciding "array-like".
>
> Ah ok.  I agree with Erik then. Even moreso, instanceof doesn't work
> cross context.

Yes (what I meant by "multiple global objects").


>> In ES1-5, length is not enumerable for Array, String, and arguments  
>> objects.
>> Anything array-like, same deal or it's not "like" enough.
>
> Maybe I'm imagining things, but I'm pretty sure that on some browsers
> length is enumerable on arr in
>   var arr = [1,2,3]
>   arr.length = 2;

That would be a straight-up conformance bug:

js> a = [1,2]
[1, 2]
js> a.length
2
js> for (i in a)print(i)
0
1
js> a.length = 0
0
js> for (i in a)print(i)
js>

Name names, take prisoners! Which browser(s)?

/be


More information about the es-discuss mailing list