diff options
Diffstat (limited to 'chromium/v8/src/runtime.js')
-rw-r--r-- | chromium/v8/src/runtime.js | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/chromium/v8/src/runtime.js b/chromium/v8/src/runtime.js index 5339570ef6e..35bc07a10e8 100644 --- a/chromium/v8/src/runtime.js +++ b/chromium/v8/src/runtime.js @@ -361,7 +361,7 @@ function IN(x) { function INSTANCE_OF(F) { var V = this; if (!IS_SPEC_FUNCTION(F)) { - throw %MakeTypeError('instanceof_function_expected', [V]); + throw %MakeTypeError('instanceof_function_expected', [F]); } // If V is not an object, return false. @@ -526,8 +526,8 @@ function ToNumber(x) { : %StringToNumber(x); } if (IS_BOOLEAN(x)) return x ? 1 : 0; - if (IS_UNDEFINED(x)) return $NaN; - if (IS_SYMBOL(x)) return $NaN; + if (IS_UNDEFINED(x)) return NAN; + if (IS_SYMBOL(x)) return NAN; return (IS_NULL(x)) ? 0 : ToNumber(%DefaultNumber(x)); } @@ -537,8 +537,8 @@ function NonNumberToNumber(x) { : %StringToNumber(x); } if (IS_BOOLEAN(x)) return x ? 1 : 0; - if (IS_UNDEFINED(x)) return $NaN; - if (IS_SYMBOL(x)) return $NaN; + if (IS_UNDEFINED(x)) return NAN; + if (IS_SYMBOL(x)) return NAN; return (IS_NULL(x)) ? 0 : ToNumber(%DefaultNumber(x)); } @@ -606,7 +606,9 @@ function SameValue(x, y) { 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 && (1 / x) != (1 / y)) return false; + if (x === 0 && y === 0 && %_IsMinusZero(x) != %_IsMinusZero(y)) { + return false; + } } return x === y; } @@ -663,7 +665,7 @@ function DefaultString(x) { function ToPositiveInteger(x, rangeErrorName) { var i = TO_INTEGER(x); - if (i < 0) throw %MakeRangeError(rangeErrorName); + if (i < 0) throw MakeRangeError(rangeErrorName); return i; } |