Array.prototype.indexOf use of SameValue()
Mark S. Miller
erights at google.com
Tue Apr 28 11:49:33 PDT 2009
On Tue, Apr 28, 2009 at 11:34 AM, John-David Dalton
<john.david.dalton at gmail.com> 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
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
--
Cheers,
--MarkM
More information about the es-discuss
mailing list