| 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,
|
|
|