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 // This file relies on the fact that the following declarations have been made | 5 // This file relies on the fact that the following declarations have been made |
6 // in runtime.js: | 6 // in runtime.js: |
7 // var $Object = global.Object; | 7 // var $Object = global.Object; |
8 // var $Boolean = global.Boolean; | 8 // var $Boolean = global.Boolean; |
9 // var $Number = global.Number; | 9 // var $Number = global.Number; |
10 // var $Function = global.Function; | 10 // var $Function = global.Function; |
11 // var $Array = global.Array; | 11 // var $Array = global.Array; |
12 // | |
13 // in math.js: | |
14 // var $floor = MathFloor | |
15 | 12 |
16 var $isNaN = GlobalIsNaN; | 13 var $isNaN = GlobalIsNaN; |
17 var $isFinite = GlobalIsFinite; | 14 var $isFinite = GlobalIsFinite; |
18 | 15 |
19 // ---------------------------------------------------------------------------- | 16 // ---------------------------------------------------------------------------- |
20 | 17 |
21 // Helper function used to install functions on objects. | 18 // Helper function used to install functions on objects. |
22 function InstallFunctions(object, attributes, functions) { | 19 function InstallFunctions(object, attributes, functions) { |
23 if (functions.length >= 8) { | 20 if (functions.length >= 8) { |
24 %OptimizeObjectForAddingMultipleProperties(object, functions.length >> 1); | 21 %OptimizeObjectForAddingMultipleProperties(object, functions.length >> 1); |
(...skipping 1623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1648 // Harmony isNaN. | 1645 // Harmony isNaN. |
1649 function NumberIsNaN(number) { | 1646 function NumberIsNaN(number) { |
1650 return IS_NUMBER(number) && NUMBER_IS_NAN(number); | 1647 return IS_NUMBER(number) && NUMBER_IS_NAN(number); |
1651 } | 1648 } |
1652 | 1649 |
1653 | 1650 |
1654 // Harmony isSafeInteger | 1651 // Harmony isSafeInteger |
1655 function NumberIsSafeInteger(number) { | 1652 function NumberIsSafeInteger(number) { |
1656 if (NumberIsFinite(number)) { | 1653 if (NumberIsFinite(number)) { |
1657 var integral = TO_INTEGER(number); | 1654 var integral = TO_INTEGER(number); |
1658 if (integral == number) | 1655 if (integral == number) return $abs(integral) <= $Number.MAX_SAFE_INTEGER; |
1659 return MathAbs(integral) <= $Number.MAX_SAFE_INTEGER; | |
1660 } | 1656 } |
1661 return false; | 1657 return false; |
1662 } | 1658 } |
1663 | 1659 |
1664 | 1660 |
1665 // ---------------------------------------------------------------------------- | 1661 // ---------------------------------------------------------------------------- |
1666 | 1662 |
1667 function SetUpNumber() { | 1663 function SetUpNumber() { |
1668 %CheckIsBootstrapping(); | 1664 %CheckIsBootstrapping(); |
1669 | 1665 |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1887 } | 1883 } |
1888 if (!IS_SPEC_FUNCTION(method)) { | 1884 if (!IS_SPEC_FUNCTION(method)) { |
1889 throw MakeTypeError('not_iterable', [obj]); | 1885 throw MakeTypeError('not_iterable', [obj]); |
1890 } | 1886 } |
1891 var iterator = %_CallFunction(obj, method); | 1887 var iterator = %_CallFunction(obj, method); |
1892 if (!IS_SPEC_OBJECT(iterator)) { | 1888 if (!IS_SPEC_OBJECT(iterator)) { |
1893 throw MakeTypeError('not_an_iterator', [iterator]); | 1889 throw MakeTypeError('not_an_iterator', [iterator]); |
1894 } | 1890 } |
1895 return iterator; | 1891 return iterator; |
1896 } | 1892 } |
OLD | NEW |