It seems as though the spec intends to disallow host objects (i.e. DOM)
from fully acting like an Array, which is clearly the intent here. Perhaps
this is a time for "willful disobedience" and a correction in ES6?
Yehuda Katz
(ph) 718.877.1325
On Mon, Nov 14, 2011 at 10:46 AM, Rick Waldron <waldron.rick@gmail.com>wrote:
> [snip]
>>
>
>
>> ES5.1 clause 8.6.2 says:
>> > "The value of the [[Class]] internal property of a host
>> object may be any String value except one of "Arguments", "Array",..."
>> > In other words, host object provides (such as a DOM implementation) are
>> not allowed to define new kinds of objects whose [[Class]] is Array.
>> > It's fine to want to define a new kind of host object that is
>> behaviorally very similar (but slight different) from instances of the
>> built-in Array constructor. But characterizing such objects by saying they
>> have [[Class]]=="Array"
>> > is a not meaningful from a ES5.1 specification perspective.
>>
>> I'm fine with any formulation, as long as it gives the correct behaviour
>> in cases like Array.prototype.concat and Array.isArray.
>>
>
> ES 5.1 15.4.3.2 Array.isArray()
> ...
> 2. If the value of the [[Class]] internal property of arg is "Array", then
> return true.
> ...
>
> Considering Allen's previous comment, this is not going to be allowed.
>
> Rick
>
>
>>
>> Do you have suggestions for what to write?
>>
>> / Jonas
>
>
>