Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: src/v8natives.js

Issue 1318043002: Native context: do not put public symbols and flags on the js builtins object. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix and rebase Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/typedarray.js ('k') | src/weak-collection.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 })
OLDNEW
« no previous file with comments | « src/typedarray.js ('k') | src/weak-collection.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698