just in case ... this is my internal function // var is = Object.is || properShim // var indexOf = [].indexOf || shortShim // var i; function betterIndexOf(value) { if (value != value || value === 0) { for (i = this.length; i-- && !is(this[i], value);); } else { i = indexOf.call(this, value); } return i; }
maybe somebody else should implement something similar to avoid N Object.is(a, b) checks within the loop ... cheers On Thu, Jun 14, 2012 at 1:59 PM, Andrea Giammarchi < andrea.giammar...@gmail.com> wrote: > This is basically what I am doing except I find Array#indexOf as it is > pointless ... or better, something that should be fixed in the next version > of ECMAScript. > > Right now I am feature detecting the inconsistent behavior ... but a > feature detection that will never possibly return true is also pointless > ... thanks in any case :-) > > br > > > On Thu, Jun 14, 2012 at 12:41 PM, Mark S. Miller <erig...@google.com>wrote: > >> Please replace your use of indexOf in your collection implementations >> instead. If indexOf is more efficient than one written in JS using >> Object.is, then use the fast one when the argument is anything other >> than NaN, 0, and -0. >> >> On Thu, Jun 14, 2012 at 3:24 PM, Andrea Giammarchi >> <andrea.giammar...@gmail.com> wrote: >> > Hello everybody, >> > I am not sure about the status of this subject but I find quite >> > inconsistent the fact we cannot trust Array#indexOf when it comes to >> NaN ... >> > I am updating my es6-collections shim accordingly with what Paul Millr >> said: >> > my shim does not consider NaN as a valid key, being unable to find a >> match >> > through indexOf, so each NaN key will result into a new one for both >> Map and >> > Set ( broken WeakMap too ) >> > >> > I wonder if in the next future Array#indexOf will use internally >> Object.is >> > to compare values or if I have to use my own function to loop over all >> > values and do this kind of comparison. >> > >> > Any thought on this will be appreciated and apologies if this has been >> > discussed already ( so a quick answer on "how it's going to be" would be >> > more than enough ) >> > >> > Best Regards, >> > Andrea Giammarchi >> > >> > _______________________________________________ >> > es-discuss mailing list >> > es-discuss@mozilla.org >> > https://mail.mozilla.org/listinfo/es-discuss >> > >> >> >> >> -- >> Cheers, >> --MarkM >> > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss