| 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 |
| 11 | 11 |
| 12 var FLAG_harmony_tostring; | 12 var FLAG_harmony_tostring; |
| 13 var GlobalArray = global.Array; | 13 var GlobalArray = global.Array; |
| 14 var GlobalBoolean = global.Boolean; | 14 var GlobalBoolean = global.Boolean; |
| 15 var GlobalFunction = global.Function; | 15 var GlobalFunction = global.Function; |
| 16 var GlobalNumber = global.Number; | 16 var GlobalNumber = global.Number; |
| 17 var GlobalObject = global.Object; | 17 var GlobalObject = global.Object; |
| 18 var InternalArray = utils.InternalArray; | 18 var InternalArray = utils.InternalArray; |
| 19 var iteratorSymbol = utils.ImportNow("iterator_symbol"); | 19 var iteratorSymbol = utils.ImportNow("iterator_symbol"); |
| 20 var MathAbs; | 20 var MathAbs; |
| 21 var ProxyDelegateCallAndConstruct; | 21 var ProxyDelegateCallAndConstruct; |
| 22 var ProxyDerivedHasOwnTrap; | 22 var ProxyDerivedHasOwnTrap; |
| 23 var ProxyDerivedKeysTrap; | 23 var ProxyDerivedKeysTrap; |
| 24 var StringIndexOf; | 24 var StringIndexOf; |
| 25 var ToBoolean = utils.ImportNow("ToBoolean"); | 25 var ToBoolean = utils.ImportNow("ToBoolean"); |
| 26 var ToNumber = utils.ImportNow("ToNumber"); | |
| 27 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); | 26 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); |
| 28 | 27 |
| 29 utils.Import(function(from) { | 28 utils.Import(function(from) { |
| 30 MathAbs = from.MathAbs; | 29 MathAbs = from.MathAbs; |
| 31 StringIndexOf = from.StringIndexOf; | 30 StringIndexOf = from.StringIndexOf; |
| 32 }); | 31 }); |
| 33 | 32 |
| 34 utils.ImportFromExperimental(function(from) { | 33 utils.ImportFromExperimental(function(from) { |
| 35 FLAG_harmony_tostring = from.FLAG_harmony_tostring; | 34 FLAG_harmony_tostring = from.FLAG_harmony_tostring; |
| 36 ProxyDelegateCallAndConstruct = from.ProxyDelegateCallAndConstruct; | 35 ProxyDelegateCallAndConstruct = from.ProxyDelegateCallAndConstruct; |
| 37 ProxyDerivedHasOwnTrap = from.ProxyDerivedHasOwnTrap; | 36 ProxyDerivedHasOwnTrap = from.ProxyDerivedHasOwnTrap; |
| 38 ProxyDerivedKeysTrap = from.ProxyDerivedKeysTrap; | 37 ProxyDerivedKeysTrap = from.ProxyDerivedKeysTrap; |
| 39 }); | 38 }); |
| 40 | 39 |
| 41 // ---------------------------------------------------------------------------- | 40 // ---------------------------------------------------------------------------- |
| 42 | 41 |
| 43 | 42 |
| 44 // ECMA 262 - 15.1.4 | 43 // ECMA 262 - 15.1.4 |
| 45 function GlobalIsNaN(number) { | 44 function GlobalIsNaN(number) { |
| 46 number = TO_NUMBER_INLINE(number); | 45 number = TO_NUMBER(number); |
| 47 return NUMBER_IS_NAN(number); | 46 return NUMBER_IS_NAN(number); |
| 48 } | 47 } |
| 49 | 48 |
| 50 | 49 |
| 51 // ECMA 262 - 15.1.5 | 50 // ECMA 262 - 15.1.5 |
| 52 function GlobalIsFinite(number) { | 51 function GlobalIsFinite(number) { |
| 53 number = TO_NUMBER_INLINE(number); | 52 number = TO_NUMBER(number); |
| 54 return NUMBER_IS_FINITE(number); | 53 return NUMBER_IS_FINITE(number); |
| 55 } | 54 } |
| 56 | 55 |
| 57 | 56 |
| 58 // ECMA-262 - 15.1.2.2 | 57 // ECMA-262 - 15.1.2.2 |
| 59 function GlobalParseInt(string, radix) { | 58 function GlobalParseInt(string, radix) { |
| 60 if (IS_UNDEFINED(radix) || radix === 10 || radix === 0) { | 59 if (IS_UNDEFINED(radix) || radix === 10 || radix === 0) { |
| 61 // Some people use parseInt instead of Math.floor. This | 60 // Some people use parseInt instead of Math.floor. This |
| 62 // optimization makes parseInt on a Smi 12 times faster (60ns | 61 // optimization makes parseInt on a Smi 12 times faster (60ns |
| 63 // vs 800ns). The following optimization makes parseInt on a | 62 // vs 800ns). The following optimization makes parseInt on a |
| (...skipping 1352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1416 "valueOf", BooleanValueOf | 1415 "valueOf", BooleanValueOf |
| 1417 ]); | 1416 ]); |
| 1418 | 1417 |
| 1419 | 1418 |
| 1420 // ---------------------------------------------------------------------------- | 1419 // ---------------------------------------------------------------------------- |
| 1421 // Number | 1420 // Number |
| 1422 | 1421 |
| 1423 function NumberConstructor(x) { | 1422 function NumberConstructor(x) { |
| 1424 // TODO(bmeurer): Move this to toplevel. | 1423 // TODO(bmeurer): Move this to toplevel. |
| 1425 "use strict"; | 1424 "use strict"; |
| 1426 var value = %_ArgumentsLength() == 0 ? 0 : ToNumber(x); | 1425 var value = %_ArgumentsLength() == 0 ? 0 : TO_NUMBER(x); |
| 1427 if (%_IsConstructCall()) { | 1426 if (%_IsConstructCall()) { |
| 1428 %_SetValueOf(this, value); | 1427 %_SetValueOf(this, value); |
| 1429 } else { | 1428 } else { |
| 1430 return value; | 1429 return value; |
| 1431 } | 1430 } |
| 1432 } | 1431 } |
| 1433 | 1432 |
| 1434 | 1433 |
| 1435 // ECMA-262 section 15.7.4.2. | 1434 // ECMA-262 section 15.7.4.2. |
| 1436 function NumberToStringJS(radix) { | 1435 function NumberToStringJS(radix) { |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1843 %InstallToContext([ | 1842 %InstallToContext([ |
| 1844 "global_eval_fun", GlobalEval, | 1843 "global_eval_fun", GlobalEval, |
| 1845 "object_value_of", ObjectValueOf, | 1844 "object_value_of", ObjectValueOf, |
| 1846 "object_to_string", ObjectToString, | 1845 "object_to_string", ObjectToString, |
| 1847 "object_define_own_property", DefineOwnPropertyFromAPI, | 1846 "object_define_own_property", DefineOwnPropertyFromAPI, |
| 1848 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor, | 1847 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor, |
| 1849 "to_complete_property_descriptor", ToCompletePropertyDescriptor, | 1848 "to_complete_property_descriptor", ToCompletePropertyDescriptor, |
| 1850 ]); | 1849 ]); |
| 1851 | 1850 |
| 1852 }) | 1851 }) |
| OLD | NEW |