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 |