You may be right, that an additional note is warranted. However, being in a
contentious mood I'll also argue that these are indeed properties of string
objects. If [[GetOwnProperty]](P) says P is a property that then it really is
one. In other words:
P is the name of a own property of O iff O.[[GetOwnProperty]](P) is not
undefined
that is pretty much exactly how Object.prototype.hasOwnProperty(V) is defined.
The hole in the spec. seems to be that a few places (for-in, Object.keys, etc.)
we use informal language to enumerate an object's properties. We probably need
a more formal definition that incorporates the above rule.
Allen
>-----Original Message-----
>From: Mark S. Miller [mailto:[email protected]]
>Sent: Monday, April 27, 2009 6:59 PM
>To: Allen Wirfs-Brock
>Cc: [email protected]; [email protected]
>Subject: Re: Indexed string pseudo properties and for-in, was RE:
>Comments on April ES5 final draft standard tc39-2009-025
>
...
>I'm happy with that, so long as it's consistent with the definition of
>for-in. However, the only relevant text I could find in for-in is
>
>> Let P be the name of the next property of obj whose [[Enumerable]]
>attribute is true. If there is no such property, return (normal, V,
>empty).
>
>Since these indexes are not actually properties of strings, this text
>is insufficient.
>
>--
> Cheers,
> --MarkM
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss