On Jul 11, 2011, at 7:31 PM, Allen Wirfs-Brock wrote:
>>>>
>>>
>>> Agreed, these are both cases where the category isn't user extensible.
>>> However, I think my statement holds for class-like categorization that are
>>> extensible.
>>
>> Do we have any examples of those in the spec., or contemplated for ES.next?
>
> See
> http://wiki.ecmascript.org/doku.php?id=strawman:es5_internal_nominal_typing
> #8:
> In JSON.stringify, use a isJSONArray property to control output in array
> literal syntax and eliminate corresponding [[Class]] check
also see
https://docs.google.com/document/d/1sSUtri6joyOOh23nVDfMbs1wDS7iDMDUFVVeHeRdSIw/edit?hl=en&authkey=CI-FopgC&pli=1
:
The built-in method Array.prototype.concat (15.4.4.4) tests each of its
arguments for [[Class]] equal to “Array” to determine whether the argument
should be concatenated as a single object or whether it should be considered a
transparent container of objects that are individually concatenated. Because
it is a class test it is context independent.
This test is problematic in that prevents used defined array-like objects from
have this same transparent container behavior. This applied even to objects
that have the Array prototype on their prototype chain. This transparent
container treatment has no fundamental dependency upon the actual unique
semantics of built-in arrays. It should be replaced with a check for some
user-definable flag property that enables/disables transparent container
treatment.
Allen
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss