| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 (function(global, utils) { | 5 (function(global, utils) { |
| 6 | 6 |
| 7 %CheckIsBootstrapping(); | 7 %CheckIsBootstrapping(); |
| 8 | 8 |
| 9 // ---------------------------------------------------------------------------- | 9 // ---------------------------------------------------------------------------- |
| 10 // Imports | 10 // Imports |
| (...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 945 | 945 |
| 946 utils.InstallFunctions(GlobalBoolean.prototype, DONT_ENUM, [ | 946 utils.InstallFunctions(GlobalBoolean.prototype, DONT_ENUM, [ |
| 947 "toString", BooleanToString, | 947 "toString", BooleanToString, |
| 948 "valueOf", BooleanValueOf | 948 "valueOf", BooleanValueOf |
| 949 ]); | 949 ]); |
| 950 | 950 |
| 951 | 951 |
| 952 // ---------------------------------------------------------------------------- | 952 // ---------------------------------------------------------------------------- |
| 953 // Number | 953 // Number |
| 954 | 954 |
| 955 function NumberConstructor(x) { | |
| 956 // TODO(bmeurer): Move this to toplevel. | |
| 957 "use strict"; | |
| 958 var value = %_ArgumentsLength() == 0 ? 0 : TO_NUMBER(x); | |
| 959 if (IS_UNDEFINED(new.target)) return value; | |
| 960 | |
| 961 var result = %NewObject(GlobalNumber, new.target); | |
| 962 %_SetValueOf(result, value); | |
| 963 return result; | |
| 964 } | |
| 965 | |
| 966 | |
| 967 // ES6 Number.prototype.toString([ radix ]) | 955 // ES6 Number.prototype.toString([ radix ]) |
| 968 function NumberToStringJS(radix) { | 956 function NumberToStringJS(radix) { |
| 969 // NOTE: Both Number objects and values can enter here as | 957 // NOTE: Both Number objects and values can enter here as |
| 970 // 'this'. This is not as dictated by ECMA-262. | 958 // 'this'. This is not as dictated by ECMA-262. |
| 971 var number = this; | 959 var number = this; |
| 972 if (!IS_NUMBER(this)) { | 960 if (!IS_NUMBER(this)) { |
| 973 if (!IS_NUMBER_WRAPPER(this)) { | 961 if (!IS_NUMBER_WRAPPER(this)) { |
| 974 throw MakeTypeError(kNotGeneric, 'Number.prototype.toString'); | 962 throw MakeTypeError(kNotGeneric, 'Number.prototype.toString'); |
| 975 } | 963 } |
| 976 // Get the value of this number in case it's an object. | 964 // Get the value of this number in case it's an object. |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1107 if (integral == number) { | 1095 if (integral == number) { |
| 1108 return MathAbs(integral) <= kMaxSafeInteger; | 1096 return MathAbs(integral) <= kMaxSafeInteger; |
| 1109 } | 1097 } |
| 1110 } | 1098 } |
| 1111 return false; | 1099 return false; |
| 1112 } | 1100 } |
| 1113 | 1101 |
| 1114 | 1102 |
| 1115 // ---------------------------------------------------------------------------- | 1103 // ---------------------------------------------------------------------------- |
| 1116 | 1104 |
| 1117 %SetCode(GlobalNumber, NumberConstructor); | |
| 1118 %FunctionSetPrototype(GlobalNumber, new GlobalNumber(0)); | 1105 %FunctionSetPrototype(GlobalNumber, new GlobalNumber(0)); |
| 1119 | 1106 |
| 1120 %OptimizeObjectForAddingMultipleProperties(GlobalNumber.prototype, 8); | 1107 %OptimizeObjectForAddingMultipleProperties(GlobalNumber.prototype, 8); |
| 1121 // Set up the constructor property on the Number prototype object. | 1108 // Set up the constructor property on the Number prototype object. |
| 1122 %AddNamedProperty(GlobalNumber.prototype, "constructor", GlobalNumber, | 1109 %AddNamedProperty(GlobalNumber.prototype, "constructor", GlobalNumber, |
| 1123 DONT_ENUM); | 1110 DONT_ENUM); |
| 1124 | 1111 |
| 1125 utils.InstallConstants(GlobalNumber, [ | 1112 utils.InstallConstants(GlobalNumber, [ |
| 1126 // ECMA-262 section 15.7.3.1. | 1113 // ECMA-262 section 15.7.3.1. |
| 1127 "MAX_VALUE", 1.7976931348623157e+308, | 1114 "MAX_VALUE", 1.7976931348623157e+308, |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1194 to.ObjectDefineProperties = ObjectDefineProperties; | 1181 to.ObjectDefineProperties = ObjectDefineProperties; |
| 1195 to.ObjectDefineProperty = ObjectDefineProperty; | 1182 to.ObjectDefineProperty = ObjectDefineProperty; |
| 1196 to.ObjectHasOwnProperty = ObjectHasOwnProperty; | 1183 to.ObjectHasOwnProperty = ObjectHasOwnProperty; |
| 1197 }); | 1184 }); |
| 1198 | 1185 |
| 1199 %InstallToContext([ | 1186 %InstallToContext([ |
| 1200 "object_value_of", ObjectValueOf, | 1187 "object_value_of", ObjectValueOf, |
| 1201 ]); | 1188 ]); |
| 1202 | 1189 |
| 1203 }) | 1190 }) |
| OLD | NEW |