| 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);
|
| }
|
|
|