Index: src/runtime.js |
=================================================================== |
--- src/runtime.js (revision 4684) |
+++ src/runtime.js (working copy) |
@@ -562,15 +562,14 @@ |
if (IS_NULL_OR_UNDEFINED(x)) return true; |
if (IS_NUMBER(x)) { |
if (NUMBER_IS_NAN(x) && NUMBER_IS_NAN(y)) return true; |
- // x is +0 and y is -0 or vice versa |
- if (x === 0 && y === 0 && !%_IsSmi(x) && !%_IsSmi(y) && |
- ((1 / x < 0 && 1 / y > 0) || (1 / x > 0 && 1 / y < 0))) { |
+ // x is +0 and y is -0 or vice versa. |
+ if (x === 0 && y === 0 && (1 / x) != (1 / y)) { |
return false; |
} |
return x == y; |
} |
if (IS_STRING(x)) return %StringEquals(x, y); |
- if (IS_BOOLEAN(x))return %NumberEquals(%ToNumber(x),%ToNumber(y)); |
+ if (IS_BOOLEAN(x)) return y == x; |
return %_ObjectEquals(x, y); |
} |