- From: Garrett Smith <dhtmlkitchen@gmail.com>
- Date: Fri, 25 Jul 2008 19:09:28 -0700
- To: public-html <public-html@w3.org>
On Thu, Jul 10, 2008 at 10:16 AM, Garrett Smith <dhtmlkitchen@gmail.com> wrote: > On Thu, Jul 10, 2008 at 12:22 AM, Cameron McCormack <cam@mcc.id.au> wrote: >> >> Cameron McCormack: >>> > > That's different from what I currently have in the Bindings spec, >>> > > which is basically "do a ToUint32() on the property name, and if the >>> > > result is a non-negative integer, use the index getter, otherwise use >>> > > the name getter". >> Is this in reference to " [IndexGetter]" on "OrderedMap" http://www.w3.org/TR/DOM-Bindings/#IndexGetter ? The major browsers allow access of items in a collection via property-access operators. The browser adds named properties to the Collection object in all of the major browsers. ==================================== <form><input></form> javascript:alert(({}).hasOwnProperty.call(document.forms[0].elements, 0)); ==================================== FF3, IE7, Saf3: true Op9: false[1] ==================================== javascript:alert("0"in document.forms[0].elements) FF3, IE7, Saf3, Op9: true ==================================== [1] Opera 9 bug: does not return true for hasOwnProperty on a Host object. Any assumption that there is a modified [[Get]] for the collection would be wrong. Garrett >> Simon Pieters: >>> > Hmm, seems like ToUint32 converts things like NaN and Infinity to 0. > > When used in property access, the Expression is converted to a string > value. NaN and +Infinity will be a "NaN" and "Infinity" respectively. > > Try it: > > (function() { > var a = []; > a.NaN = 12; > a.Infinity = 13; > a[0] = "z"; > alert(a[NaN]); > alert(a[1/0]); > > // no property named "0x0" - so undefined; > alert(a["0x0"]); > > // -0.0 => 0, resolve the "0" property on a. > alert(a[-0.0]); > })() > > >>> > Browsers don't do that. So I don't think that's good enough... e.g., we >>> > want ["0x0"], [1/0], etc., to use the name getter. >> > > A string value of the Expression will be used. If the Expression is > "0x0", then the property "0x0" (or undefined) will be returned. > > [snip] > > Garrett > >> -- >> Cameron McCormack ≝ http://mcc.id.au/ >
Received on Saturday, 26 July 2008 02:10:03 UTC