Actually, the intent was to support "indexed" access to both string values and string wrapper objects. I just didn't make it clear in the example. The case analysis was intended to apply to both. My reading of section 11.2.1 is that a string value is to be transformed into an object before any actual property access semantics are applied. Am I wrong?
Is the semantics I described really any different from array indexing? I actually, borrowed some concepts from Array [[Put]] but it is most about maintaining the length invariant. Other than that I didn't find any array specific property indexing semantics in the ES3 spec. From: Maciej Stachowiak [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 24, 2008 6:21 PM To: Allen Wirfs-Brock Cc: [EMAIL PROTECTED]; Pratap Lakshman (VJ#SDK); [email protected] Subject: Re: Semantics of "indexed" string access On Jun 24, 2008, at 5:46 PM, Allen Wirfs-Brock wrote: I've taken a crack at cleaning up Pratap's initial specification for supporting direct indexing of strings, eg "abc"[1] yields "b" Here are the semantics that seemed to make sense: s[n] 1) If s has an own property whose name is the same as the value of n, the value of that property is returned. Since s is a string value, not an object, then it cannot have any own properties. The autogenerated wrapper for s does have some own propertied. 2) else If the value of n is convertible to a number that is within the bounds of the string value, return a string containing the corresponding character 3) else if try to resolve n as the name of an inherited property 4) else return undefined. In other words, indexing into a string with a "valid" index returns that appropriate character unless somebody has explicitly defined a property named by that index on the object. It is not possible to define a custom property on a string value. On a string object you could. I would suggest it makes more sense to make index properties of a string act like index properties of an array, but read-only. Regards, Maciej
_______________________________________________ Es4-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es4-discuss
