On Tue, Apr 28, 2009 at 11:34 AM, John-David Dalton <[email protected]> wrote: > In the ECMA 5 RC spec I noticed that 15.4.4.14 Array.prototype.indexOf > (and lastIndexOf) make use of the SameValue operation. > The spec states that (9.12) SameValue will return true If Type(x) is > Undefined or Null.
The steps which say these (steps 2 & 3) occur after step 1: 1. If Type(x) is different from Type(y), return false. 2. If Type(x) is Undefined, return true. 3. If Type(x) is Null, return true. so steps 2 & 3 only apply if Type(x) is the same as Type(y). > Would this not cause an issue with 9c of the Array.prototype.indexOf spec. > "c. If SameValue(searchElement,elementK) is true, return k.". > > [1,2,null].indexOf(null) -> SameValue(null, 1) -> true, return 0. No, because Type(null) is Null and Type(1) is Number; so step 1 will return false. > var undef; > [1,2,undef].indexOf(undef) -> SameValue(undefined, 1) -> true, return 0. > > - JDD > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > -- Cheers, --MarkM _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

