| 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 GlobalArray = global.Array; | 13 var GlobalArray = global.Array; |
| 13 var GlobalBoolean = global.Boolean; | 14 var GlobalBoolean = global.Boolean; |
| 14 var GlobalFunction = global.Function; | 15 var GlobalFunction = global.Function; |
| 15 var GlobalNumber = global.Number; | 16 var GlobalNumber = global.Number; |
| 16 var GlobalObject = global.Object; | 17 var GlobalObject = global.Object; |
| 17 var InternalArray = utils.InternalArray; | 18 var InternalArray = utils.InternalArray; |
| 19 var iteratorSymbol = utils.ImportNow("iterator_symbol"); |
| 18 var MathAbs; | 20 var MathAbs; |
| 19 var ProxyDelegateCallAndConstruct; | 21 var ProxyDelegateCallAndConstruct; |
| 20 var ProxyDerivedHasOwnTrap; | 22 var ProxyDerivedHasOwnTrap; |
| 21 var ProxyDerivedKeysTrap; | 23 var ProxyDerivedKeysTrap; |
| 22 var StringIndexOf; | 24 var StringIndexOf; |
| 23 var ToBoolean; | 25 var ToBoolean = utils.ImportNow("ToBoolean"); |
| 24 var ToNumber; | 26 var ToNumber = utils.ImportNow("ToNumber"); |
| 25 var ToString; | 27 var ToString; |
| 28 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); |
| 26 | 29 |
| 27 utils.Import(function(from) { | 30 utils.Import(function(from) { |
| 28 MathAbs = from.MathAbs; | 31 MathAbs = from.MathAbs; |
| 29 StringIndexOf = from.StringIndexOf; | 32 StringIndexOf = from.StringIndexOf; |
| 30 ToString = from.ToString; | 33 ToString = from.ToString; |
| 31 }); | 34 }); |
| 32 | 35 |
| 33 utils.ImportNow(function(from) { | |
| 34 ToBoolean = from.ToBoolean; | |
| 35 ToNumber = from.ToNumber; | |
| 36 }); | |
| 37 | |
| 38 utils.ImportFromExperimental(function(from) { | 36 utils.ImportFromExperimental(function(from) { |
| 37 FLAG_harmony_tostring = from.FLAG_harmony_tostring; |
| 39 ProxyDelegateCallAndConstruct = from.ProxyDelegateCallAndConstruct; | 38 ProxyDelegateCallAndConstruct = from.ProxyDelegateCallAndConstruct; |
| 40 ProxyDerivedHasOwnTrap = from.ProxyDerivedHasOwnTrap; | 39 ProxyDerivedHasOwnTrap = from.ProxyDerivedHasOwnTrap; |
| 41 ProxyDerivedKeysTrap = from.ProxyDerivedKeysTrap; | 40 ProxyDerivedKeysTrap = from.ProxyDerivedKeysTrap; |
| 42 }); | 41 }); |
| 43 | 42 |
| 44 // ---------------------------------------------------------------------------- | 43 // ---------------------------------------------------------------------------- |
| 45 | 44 |
| 46 | 45 |
| 47 // ECMA 262 - 15.1.4 | 46 // ECMA 262 - 15.1.4 |
| 48 function GlobalIsNaN(number) { | 47 function GlobalIsNaN(number) { |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 | 140 |
| 142 // ECMA-262 - 15.2.4.2 | 141 // ECMA-262 - 15.2.4.2 |
| 143 function ObjectToString() { | 142 function ObjectToString() { |
| 144 if (IS_UNDEFINED(this)) return "[object Undefined]"; | 143 if (IS_UNDEFINED(this)) return "[object Undefined]"; |
| 145 if (IS_NULL(this)) return "[object Null]"; | 144 if (IS_NULL(this)) return "[object Null]"; |
| 146 var O = TO_OBJECT(this); | 145 var O = TO_OBJECT(this); |
| 147 var builtinTag = %_ClassOf(O); | 146 var builtinTag = %_ClassOf(O); |
| 148 var tag; | 147 var tag; |
| 149 | 148 |
| 150 // TODO(caitp): cannot wait to get rid of this flag :> | 149 // TODO(caitp): cannot wait to get rid of this flag :> |
| 151 if (harmony_tostring) { | 150 if (FLAG_harmony_tostring) { |
| 152 tag = O[symbolToStringTag]; | 151 tag = O[toStringTagSymbol]; |
| 153 if (!IS_STRING(tag)) { | 152 if (!IS_STRING(tag)) { |
| 154 tag = builtinTag; | 153 tag = builtinTag; |
| 155 } | 154 } |
| 156 } else { | 155 } else { |
| 157 tag = builtinTag; | 156 tag = builtinTag; |
| 158 } | 157 } |
| 159 | 158 |
| 160 return `[object ${tag}]`; | 159 return `[object ${tag}]`; |
| 161 } | 160 } |
| 162 | 161 |
| (...skipping 1603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1766 "toString", FunctionToString | 1765 "toString", FunctionToString |
| 1767 ]); | 1766 ]); |
| 1768 | 1767 |
| 1769 // ---------------------------------------------------------------------------- | 1768 // ---------------------------------------------------------------------------- |
| 1770 // Iterator related spec functions. | 1769 // Iterator related spec functions. |
| 1771 | 1770 |
| 1772 // ES6 rev 33, 2015-02-12 | 1771 // ES6 rev 33, 2015-02-12 |
| 1773 // 7.4.1 GetIterator ( obj, method ) | 1772 // 7.4.1 GetIterator ( obj, method ) |
| 1774 function GetIterator(obj, method) { | 1773 function GetIterator(obj, method) { |
| 1775 if (IS_UNDEFINED(method)) { | 1774 if (IS_UNDEFINED(method)) { |
| 1776 method = obj[symbolIterator]; | 1775 method = obj[iteratorSymbol]; |
| 1777 } | 1776 } |
| 1778 if (!IS_SPEC_FUNCTION(method)) { | 1777 if (!IS_SPEC_FUNCTION(method)) { |
| 1779 throw MakeTypeError(kNotIterable, obj); | 1778 throw MakeTypeError(kNotIterable, obj); |
| 1780 } | 1779 } |
| 1781 var iterator = %_CallFunction(obj, method); | 1780 var iterator = %_CallFunction(obj, method); |
| 1782 if (!IS_SPEC_OBJECT(iterator)) { | 1781 if (!IS_SPEC_OBJECT(iterator)) { |
| 1783 throw MakeTypeError(kNotAnIterator, iterator); | 1782 throw MakeTypeError(kNotAnIterator, iterator); |
| 1784 } | 1783 } |
| 1785 return iterator; | 1784 return iterator; |
| 1786 } | 1785 } |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1810 }); | 1809 }); |
| 1811 | 1810 |
| 1812 %InstallToContext([ | 1811 %InstallToContext([ |
| 1813 "global_eval_fun", GlobalEval, | 1812 "global_eval_fun", GlobalEval, |
| 1814 "object_define_own_property", DefineOwnPropertyFromAPI, | 1813 "object_define_own_property", DefineOwnPropertyFromAPI, |
| 1815 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor, | 1814 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor, |
| 1816 "to_complete_property_descriptor", ToCompletePropertyDescriptor, | 1815 "to_complete_property_descriptor", ToCompletePropertyDescriptor, |
| 1817 ]); | 1816 ]); |
| 1818 | 1817 |
| 1819 }) | 1818 }) |
| OLD | NEW |