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 var $delete; | 5 var $delete; |
6 var $functionSourceString; | 6 var $functionSourceString; |
7 var $getIterator; | 7 var $getIterator; |
8 var $getMethod; | 8 var $getMethod; |
9 var $globalEval; | 9 var $globalEval; |
10 var $installConstants; | 10 var $installConstants; |
(...skipping 14 matching lines...) Expand all Loading... |
25 var $objectLookupGetter; | 25 var $objectLookupGetter; |
26 var $objectLookupSetter; | 26 var $objectLookupSetter; |
27 var $objectToString; | 27 var $objectToString; |
28 var $overrideFunction; | 28 var $overrideFunction; |
29 var $ownPropertyKeys; | 29 var $ownPropertyKeys; |
30 var $setFunctionName; | 30 var $setFunctionName; |
31 var $setUpLockedPrototype; | 31 var $setUpLockedPrototype; |
32 var $toCompletePropertyDescriptor; | 32 var $toCompletePropertyDescriptor; |
33 var $toNameArray; | 33 var $toNameArray; |
34 | 34 |
35 (function(global, shared, exports) { | 35 (function(global, utils) { |
36 | 36 |
37 %CheckIsBootstrapping(); | 37 %CheckIsBootstrapping(); |
38 | 38 |
39 // ---------------------------------------------------------------------------- | 39 // ---------------------------------------------------------------------------- |
40 // Imports | 40 // Imports |
41 | 41 |
42 var GlobalArray = global.Array; | 42 var GlobalArray = global.Array; |
43 var GlobalBoolean = global.Boolean; | 43 var GlobalBoolean = global.Boolean; |
44 var GlobalFunction = global.Function; | 44 var GlobalFunction = global.Function; |
45 var GlobalNumber = global.Number; | 45 var GlobalNumber = global.Number; |
46 var GlobalObject = global.Object; | 46 var GlobalObject = global.Object; |
47 var InternalArray = shared.InternalArray; | 47 var InternalArray = utils.InternalArray; |
| 48 |
| 49 var MathAbs; |
| 50 var StringIndexOf; |
| 51 |
| 52 utils.Import(function(from) { |
| 53 MathAbs = from.MathAbs; |
| 54 StringIndexOf = from.StringIndexOf; |
| 55 }); |
48 | 56 |
49 // ---------------------------------------------------------------------------- | 57 // ---------------------------------------------------------------------------- |
50 | 58 |
51 // ES6 - 9.2.11 SetFunctionName | 59 // ES6 - 9.2.11 SetFunctionName |
52 function SetFunctionName(f, name, prefix) { | 60 function SetFunctionName(f, name, prefix) { |
53 if (IS_SYMBOL(name)) { | 61 if (IS_SYMBOL(name)) { |
54 name = "[" + %SymbolDescription(name) + "]"; | 62 name = "[" + %SymbolDescription(name) + "]"; |
55 } | 63 } |
56 if (IS_UNDEFINED(prefix)) { | 64 if (IS_UNDEFINED(prefix)) { |
57 %FunctionSetName(f, name); | 65 %FunctionSetName(f, name); |
(...skipping 1632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1690 function NumberIsNaN(number) { | 1698 function NumberIsNaN(number) { |
1691 return IS_NUMBER(number) && NUMBER_IS_NAN(number); | 1699 return IS_NUMBER(number) && NUMBER_IS_NAN(number); |
1692 } | 1700 } |
1693 | 1701 |
1694 | 1702 |
1695 // Harmony isSafeInteger | 1703 // Harmony isSafeInteger |
1696 function NumberIsSafeInteger(number) { | 1704 function NumberIsSafeInteger(number) { |
1697 if (NumberIsFinite(number)) { | 1705 if (NumberIsFinite(number)) { |
1698 var integral = TO_INTEGER(number); | 1706 var integral = TO_INTEGER(number); |
1699 if (integral == number) { | 1707 if (integral == number) { |
1700 return $abs(integral) <= GlobalNumber.MAX_SAFE_INTEGER; | 1708 return MathAbs(integral) <= GlobalNumber.MAX_SAFE_INTEGER; |
1701 } | 1709 } |
1702 } | 1710 } |
1703 return false; | 1711 return false; |
1704 } | 1712 } |
1705 | 1713 |
1706 | 1714 |
1707 // ---------------------------------------------------------------------------- | 1715 // ---------------------------------------------------------------------------- |
1708 | 1716 |
1709 %SetCode(GlobalNumber, NumberConstructor); | 1717 %SetCode(GlobalNumber, NumberConstructor); |
1710 %FunctionSetPrototype(GlobalNumber, new GlobalNumber(0)); | 1718 %FunctionSetPrototype(GlobalNumber, new GlobalNumber(0)); |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1875 var n = args.length; | 1883 var n = args.length; |
1876 var p = ''; | 1884 var p = ''; |
1877 if (n > 1) { | 1885 if (n > 1) { |
1878 p = $toString(args[0]); | 1886 p = $toString(args[0]); |
1879 for (var i = 1; i < n - 1; i++) { | 1887 for (var i = 1; i < n - 1; i++) { |
1880 p += ',' + $toString(args[i]); | 1888 p += ',' + $toString(args[i]); |
1881 } | 1889 } |
1882 // If the formal parameters string include ) - an illegal | 1890 // If the formal parameters string include ) - an illegal |
1883 // character - it may make the combined function expression | 1891 // character - it may make the combined function expression |
1884 // compile. We avoid this problem by checking for this early on. | 1892 // compile. We avoid this problem by checking for this early on. |
1885 if (%_CallFunction(p, ')', $stringIndexOf) != -1) { | 1893 if (%_CallFunction(p, ')', StringIndexOf) != -1) { |
1886 throw MakeSyntaxError(kParenthesisInArgString); | 1894 throw MakeSyntaxError(kParenthesisInArgString); |
1887 } | 1895 } |
1888 // If the formal parameters include an unbalanced block comment, the | 1896 // If the formal parameters include an unbalanced block comment, the |
1889 // function must be rejected. Since JavaScript does not allow nested | 1897 // function must be rejected. Since JavaScript does not allow nested |
1890 // comments we can include a trailing block comment to catch this. | 1898 // comments we can include a trailing block comment to catch this. |
1891 p += '\n/' + '**/'; | 1899 p += '\n/' + '**/'; |
1892 } | 1900 } |
1893 var body = (n > 0) ? $toString(args[n - 1]) : ''; | 1901 var body = (n > 0) ? $toString(args[n - 1]) : ''; |
1894 return '(' + function_token + '(' + p + ') {\n' + body + '\n})'; | 1902 return '(' + function_token + '(' + p + ') {\n' + body + '\n})'; |
1895 } | 1903 } |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1962 $objectLookupSetter = ObjectLookupSetter; | 1970 $objectLookupSetter = ObjectLookupSetter; |
1963 $objectToString = ObjectToString; | 1971 $objectToString = ObjectToString; |
1964 $overrideFunction = OverrideFunction; | 1972 $overrideFunction = OverrideFunction; |
1965 $ownPropertyKeys = OwnPropertyKeys; | 1973 $ownPropertyKeys = OwnPropertyKeys; |
1966 $setFunctionName = SetFunctionName; | 1974 $setFunctionName = SetFunctionName; |
1967 $setUpLockedPrototype = SetUpLockedPrototype; | 1975 $setUpLockedPrototype = SetUpLockedPrototype; |
1968 $toCompletePropertyDescriptor = ToCompletePropertyDescriptor; | 1976 $toCompletePropertyDescriptor = ToCompletePropertyDescriptor; |
1969 $toNameArray = ToNameArray; | 1977 $toNameArray = ToNameArray; |
1970 | 1978 |
1971 }) | 1979 }) |
OLD | NEW |