Index: src/js/v8natives.js |
diff --git a/src/js/v8natives.js b/src/js/v8natives.js |
index 6db941bffe90f6166bd2943c80e04be55a4e1703..9026cfe684596649756bc58abdc57fcd1cbd7551 100644 |
--- a/src/js/v8natives.js |
+++ b/src/js/v8natives.js |
@@ -222,124 +222,6 @@ utils.InstallFunctions(GlobalObject, DONT_ENUM, [ |
// ---------------------------------------------------------------------------- |
// Number |
-// ES6 Number.prototype.toString([ radix ]) |
-function NumberToStringJS(radix) { |
- // NOTE: Both Number objects and values can enter here as |
- // 'this'. This is not as dictated by ECMA-262. |
- var number = this; |
- if (!IS_NUMBER(this)) { |
- if (!IS_NUMBER_WRAPPER(this)) { |
- throw MakeTypeError(kNotGeneric, 'Number.prototype.toString'); |
- } |
- // Get the value of this number in case it's an object. |
- number = %_ValueOf(this); |
- } |
- // Fast case: Convert number in radix 10. |
- if (IS_UNDEFINED(radix) || radix === 10) { |
- return %_NumberToString(number); |
- } |
- |
- // Convert the radix to an integer and check the range. |
- radix = TO_INTEGER(radix); |
- if (radix < 2 || radix > 36) throw MakeRangeError(kToRadixFormatRange); |
- // Convert the number to a string in the given radix. |
- return %NumberToRadixString(number, radix); |
-} |
- |
- |
-// ES6 20.1.3.4 Number.prototype.toLocaleString([reserved1 [, reserved2]]) |
-function NumberToLocaleString() { |
- return %_Call(NumberToStringJS, this); |
-} |
- |
- |
-// ES6 20.1.3.7 Number.prototype.valueOf() |
-function NumberValueOf() { |
- // NOTE: Both Number objects and values can enter here as |
- // 'this'. This is not as dictated by ECMA-262. |
- if (!IS_NUMBER(this) && !IS_NUMBER_WRAPPER(this)) { |
- throw MakeTypeError(kNotGeneric, 'Number.prototype.valueOf'); |
- } |
- return %_ValueOf(this); |
-} |
- |
- |
-// ES6 20.1.3.3 Number.prototype.toFixed(fractionDigits) |
-function NumberToFixedJS(fractionDigits) { |
- var x = this; |
- if (!IS_NUMBER(this)) { |
- if (!IS_NUMBER_WRAPPER(this)) { |
- throw MakeTypeError(kIncompatibleMethodReceiver, |
- "Number.prototype.toFixed", this); |
- } |
- // Get the value of this number in case it's an object. |
- x = %_ValueOf(this); |
- } |
- var f = TO_INTEGER(fractionDigits); |
- |
- if (f < 0 || f > 20) { |
- throw MakeRangeError(kNumberFormatRange, "toFixed() digits"); |
- } |
- |
- if (NUMBER_IS_NAN(x)) return "NaN"; |
- if (x == INFINITY) return "Infinity"; |
- if (x == -INFINITY) return "-Infinity"; |
- |
- return %NumberToFixed(x, f); |
-} |
- |
- |
-// ES6 20.1.3.2 Number.prototype.toExponential(fractionDigits) |
-function NumberToExponentialJS(fractionDigits) { |
- var x = this; |
- if (!IS_NUMBER(this)) { |
- if (!IS_NUMBER_WRAPPER(this)) { |
- throw MakeTypeError(kIncompatibleMethodReceiver, |
- "Number.prototype.toExponential", this); |
- } |
- // Get the value of this number in case it's an object. |
- x = %_ValueOf(this); |
- } |
- var f = IS_UNDEFINED(fractionDigits) ? UNDEFINED : TO_INTEGER(fractionDigits); |
- |
- if (NUMBER_IS_NAN(x)) return "NaN"; |
- if (x == INFINITY) return "Infinity"; |
- if (x == -INFINITY) return "-Infinity"; |
- |
- if (IS_UNDEFINED(f)) { |
- f = -1; // Signal for runtime function that f is not defined. |
- } else if (f < 0 || f > 20) { |
- throw MakeRangeError(kNumberFormatRange, "toExponential()"); |
- } |
- return %NumberToExponential(x, f); |
-} |
- |
- |
-// ES6 20.1.3.5 Number.prototype.toPrecision(precision) |
-function NumberToPrecisionJS(precision) { |
- var x = this; |
- if (!IS_NUMBER(this)) { |
- if (!IS_NUMBER_WRAPPER(this)) { |
- throw MakeTypeError(kIncompatibleMethodReceiver, |
- "Number.prototype.toPrecision", this); |
- } |
- // Get the value of this number in case it's an object. |
- x = %_ValueOf(this); |
- } |
- if (IS_UNDEFINED(precision)) return TO_STRING(x); |
- var p = TO_INTEGER(precision); |
- |
- if (NUMBER_IS_NAN(x)) return "NaN"; |
- if (x == INFINITY) return "Infinity"; |
- if (x == -INFINITY) return "-Infinity"; |
- |
- if (p < 1 || p > 21) { |
- throw MakeRangeError(kToPrecisionFormatRange); |
- } |
- return %NumberToPrecision(x, p); |
-} |
- |
- |
// Harmony isFinite. |
function NumberIsFinite(number) { |
return IS_NUMBER(number) && NUMBER_IS_FINITE(number); |
@@ -372,13 +254,6 @@ function NumberIsSafeInteger(number) { |
// ---------------------------------------------------------------------------- |
-%FunctionSetPrototype(GlobalNumber, new GlobalNumber(0)); |
- |
-%OptimizeObjectForAddingMultipleProperties(GlobalNumber.prototype, 8); |
-// Set up the constructor property on the Number prototype object. |
-%AddNamedProperty(GlobalNumber.prototype, "constructor", GlobalNumber, |
- DONT_ENUM); |
- |
utils.InstallConstants(GlobalNumber, [ |
// ECMA-262 section 15.7.3.1. |
"MAX_VALUE", 1.7976931348623157e+308, |
@@ -398,16 +273,6 @@ utils.InstallConstants(GlobalNumber, [ |
"EPSILON", 2.220446049250313e-16, |
]); |
-// Set up non-enumerable functions on the Number prototype object. |
-utils.InstallFunctions(GlobalNumber.prototype, DONT_ENUM, [ |
- "toString", NumberToStringJS, |
- "toLocaleString", NumberToLocaleString, |
- "valueOf", NumberValueOf, |
- "toFixed", NumberToFixedJS, |
- "toExponential", NumberToExponentialJS, |
- "toPrecision", NumberToPrecisionJS |
-]); |
- |
// Harmony Number constructor additions |
utils.InstallFunctions(GlobalNumber, DONT_ENUM, [ |
"isFinite", NumberIsFinite, |