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
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to