Indexed string pseudo properties and for-in, was RE: Comments on April ES5 final draft standard tc39-2009-025

Allen Wirfs-Brock Allen.Wirfs-Brock at
Mon Apr 27 17:28:14 PDT 2009

As currently specified, they are to be enumerated by for-in. This is intentional and I believe we discussed it at some past TC-39 meeting. If we are treating the string characters as indexible readonly properties then for-in-ing over them seems like a perfectly reasonable thing to do.  This is one of the advantages of using [[GetOwnProperty]] in this manner rather than trying to support direct string indexing using some other specification mechanism -- they just naturally integrate into property access anywhere it occurs in the specification.  

>-----Original Message-----
>From: es5-discuss-bounces at [mailto:es5-discuss-
>bounces at] On Behalf Of Mark S. Miller
> [[GetOwnProperty]] ( P )
>> 9. Return a Property Descriptor { [[Value]]: resultStr,
>[[Enumerable]]: true, [[Writable]]: false, [[Configurable]]: false }
>Since these numeric pseudo-properties are not enumerated by for-in
>loops, we should describe them as non-enumerable.

More information about the es-discuss mailing list