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

Side by Side Diff: src/js/v8natives.js

Issue 1488873003: [proxies] Implement Symbol/DONT_ENUM filtering for GetKeys() (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: moved filtering into KeyAccumulator Created 5 years 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/js/proxy.js ('k') | src/key-accumulator.h » ('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 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 MakeRangeError; 20 var MakeRangeError;
21 var MakeSyntaxError; 21 var MakeSyntaxError;
22 var MakeTypeError; 22 var MakeTypeError;
23 var MathAbs; 23 var MathAbs;
24 var NaN = %GetRootNaN(); 24 var NaN = %GetRootNaN();
25 var ObserveBeginPerformSplice; 25 var ObserveBeginPerformSplice;
26 var ObserveEndPerformSplice; 26 var ObserveEndPerformSplice;
27 var ObserveEnqueueSpliceRecord; 27 var ObserveEnqueueSpliceRecord;
28 var ProxyDelegateCallAndConstruct; 28 var ProxyDelegateCallAndConstruct;
29 var ProxyDerivedHasOwnTrap; 29 var ProxyDerivedHasOwnTrap;
30 var ProxyDerivedKeysTrap;
31 var SameValue = utils.ImportNow("SameValue"); 30 var SameValue = utils.ImportNow("SameValue");
32 var StringIndexOf; 31 var StringIndexOf;
33 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); 32 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
34 33
35 utils.Import(function(from) { 34 utils.Import(function(from) {
36 MakeRangeError = from.MakeRangeError; 35 MakeRangeError = from.MakeRangeError;
37 MakeSyntaxError = from.MakeSyntaxError; 36 MakeSyntaxError = from.MakeSyntaxError;
38 MakeTypeError = from.MakeTypeError; 37 MakeTypeError = from.MakeTypeError;
39 MathAbs = from.MathAbs; 38 MathAbs = from.MathAbs;
40 ObserveBeginPerformSplice = from.ObserveBeginPerformSplice; 39 ObserveBeginPerformSplice = from.ObserveBeginPerformSplice;
41 ObserveEndPerformSplice = from.ObserveEndPerformSplice; 40 ObserveEndPerformSplice = from.ObserveEndPerformSplice;
42 ObserveEnqueueSpliceRecord = from.ObserveEnqueueSpliceRecord; 41 ObserveEnqueueSpliceRecord = from.ObserveEnqueueSpliceRecord;
43 StringIndexOf = from.StringIndexOf; 42 StringIndexOf = from.StringIndexOf;
44 }); 43 });
45 44
46 utils.ImportFromExperimental(function(from) { 45 utils.ImportFromExperimental(function(from) {
47 FLAG_harmony_tostring = from.FLAG_harmony_tostring; 46 FLAG_harmony_tostring = from.FLAG_harmony_tostring;
48 ProxyDelegateCallAndConstruct = from.ProxyDelegateCallAndConstruct; 47 ProxyDelegateCallAndConstruct = from.ProxyDelegateCallAndConstruct;
49 ProxyDerivedHasOwnTrap = from.ProxyDerivedHasOwnTrap; 48 ProxyDerivedHasOwnTrap = from.ProxyDerivedHasOwnTrap;
50 ProxyDerivedKeysTrap = from.ProxyDerivedKeysTrap;
51 }); 49 });
52 50
53 // ---------------------------------------------------------------------------- 51 // ----------------------------------------------------------------------------
54 52
55 53
56 // ECMA 262 - 15.1.4 54 // ECMA 262 - 15.1.4
57 function GlobalIsNaN(number) { 55 function GlobalIsNaN(number) {
58 number = TO_NUMBER(number); 56 number = TO_NUMBER(number);
59 return NUMBER_IS_NAN(number); 57 return NUMBER_IS_NAN(number);
60 } 58 }
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 var receiver = this; 265 var receiver = this;
268 if (IS_NULL(receiver) || IS_UNDEFINED(receiver)) { 266 if (IS_NULL(receiver) || IS_UNDEFINED(receiver)) {
269 receiver = %GlobalProxy(ObjectLookupSetter); 267 receiver = %GlobalProxy(ObjectLookupSetter);
270 } 268 }
271 return %LookupAccessor(TO_OBJECT(receiver), TO_NAME(name), SETTER); 269 return %LookupAccessor(TO_OBJECT(receiver), TO_NAME(name), SETTER);
272 } 270 }
273 271
274 272
275 function ObjectKeys(obj) { 273 function ObjectKeys(obj) {
276 obj = TO_OBJECT(obj); 274 obj = TO_OBJECT(obj);
277 if (%_IsJSProxy(obj)) {
278 var handler = %GetHandler(obj);
279 var names = CallTrap0(handler, "keys", ProxyDerivedKeysTrap);
280 return ToNameArray(names, "keys", false);
281 }
282 return %OwnKeys(obj); 275 return %OwnKeys(obj);
283 } 276 }
284 277
285 278
286 // ES5 8.10.1. 279 // ES5 8.10.1.
287 function IsAccessorDescriptor(desc) { 280 function IsAccessorDescriptor(desc) {
288 if (IS_UNDEFINED(desc)) return false; 281 if (IS_UNDEFINED(desc)) return false;
289 return desc.hasGetter() || desc.hasSetter(); 282 return desc.hasGetter() || desc.hasSetter();
290 } 283 }
291 284
(...skipping 1470 matching lines...) Expand 10 before | Expand all | Expand 10 after
1762 1755
1763 %InstallToContext([ 1756 %InstallToContext([
1764 "global_eval_fun", GlobalEval, 1757 "global_eval_fun", GlobalEval,
1765 "object_value_of", ObjectValueOf, 1758 "object_value_of", ObjectValueOf,
1766 "object_to_string", ObjectToString, 1759 "object_to_string", ObjectToString,
1767 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor, 1760 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor,
1768 "to_complete_property_descriptor", ToCompletePropertyDescriptor, 1761 "to_complete_property_descriptor", ToCompletePropertyDescriptor,
1769 ]); 1762 ]);
1770 1763
1771 }) 1764 })
OLDNEW
« no previous file with comments | « src/js/proxy.js ('k') | src/key-accumulator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698