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

Side by Side Diff: src/objects.h

Issue 2756523004: WIP: Create a public v8::DictionarySchema API for bulk reads from dict objects.
Patch Set: Created 3 years, 9 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/counters.h ('k') | src/objects.cc » ('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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 // - JSValue 73 // - JSValue
74 // - JSDate 74 // - JSDate
75 // - JSMessageObject 75 // - JSMessageObject
76 // - JSModuleNamespace 76 // - JSModuleNamespace
77 // - JSProxy 77 // - JSProxy
78 // - FixedArrayBase 78 // - FixedArrayBase
79 // - ByteArray 79 // - ByteArray
80 // - BytecodeArray 80 // - BytecodeArray
81 // - FixedArray 81 // - FixedArray
82 // - DescriptorArray 82 // - DescriptorArray
83 // - DictionarySchema
83 // - FrameArray 84 // - FrameArray
84 // - HashTable 85 // - HashTable
85 // - Dictionary 86 // - Dictionary
86 // - StringTable 87 // - StringTable
87 // - StringSet 88 // - StringSet
88 // - CompilationCacheTable 89 // - CompilationCacheTable
89 // - CodeCacheHashTable 90 // - CodeCacheHashTable
90 // - MapCache 91 // - MapCache
91 // - OrderedHashTable 92 // - OrderedHashTable
92 // - OrderedHashSet 93 // - OrderedHashSet
(...skipping 907 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 V(BytecodeArray) \ 1001 V(BytecodeArray) \
1001 V(FreeSpace) \ 1002 V(FreeSpace) \
1002 V(JSReceiver) \ 1003 V(JSReceiver) \
1003 V(JSObject) \ 1004 V(JSObject) \
1004 V(JSArgumentsObject) \ 1005 V(JSArgumentsObject) \
1005 V(JSContextExtensionObject) \ 1006 V(JSContextExtensionObject) \
1006 V(JSGeneratorObject) \ 1007 V(JSGeneratorObject) \
1007 V(JSModuleNamespace) \ 1008 V(JSModuleNamespace) \
1008 V(Map) \ 1009 V(Map) \
1009 V(DescriptorArray) \ 1010 V(DescriptorArray) \
1011 V(DictionarySchema) \
1010 V(FrameArray) \ 1012 V(FrameArray) \
1011 V(TransitionArray) \ 1013 V(TransitionArray) \
1012 V(FeedbackMetadata) \ 1014 V(FeedbackMetadata) \
1013 V(FeedbackVector) \ 1015 V(FeedbackVector) \
1014 V(DeoptimizationInputData) \ 1016 V(DeoptimizationInputData) \
1015 V(DeoptimizationOutputData) \ 1017 V(DeoptimizationOutputData) \
1016 V(DependentCode) \ 1018 V(DependentCode) \
1017 V(HandlerTable) \ 1019 V(HandlerTable) \
1018 V(FixedArray) \ 1020 V(FixedArray) \
1019 V(BoilerplateDescription) \ 1021 V(BoilerplateDescription) \
(...skipping 2209 matching lines...) Expand 10 before | Expand all | Expand 10 after
3229 // Transfer a complete descriptor from the src descriptor array to this 3231 // Transfer a complete descriptor from the src descriptor array to this
3230 // descriptor array. 3232 // descriptor array.
3231 void CopyFrom(int index, DescriptorArray* src); 3233 void CopyFrom(int index, DescriptorArray* src);
3232 3234
3233 // Swap first and second descriptor. 3235 // Swap first and second descriptor.
3234 inline void SwapSortedKeys(int first, int second); 3236 inline void SwapSortedKeys(int first, int second);
3235 3237
3236 DISALLOW_IMPLICIT_CONSTRUCTORS(DescriptorArray); 3238 DISALLOW_IMPLICIT_CONSTRUCTORS(DescriptorArray);
3237 }; 3239 };
3238 3240
3241 // A list of keys expected to be searched in "dictionary-like" objects.
3242 // See v8::DictionarySchema.
3243 class DictionarySchema : public FixedArray {
3244 public:
3245 static Handle<DictionarySchema> New(Isolate* isolate, int size);
3246 DECLARE_CAST(DictionarySchema);
3247
3248 private:
3249 DISALLOW_IMPLICIT_CONSTRUCTORS(DictionarySchema);
3250 };
3239 3251
3240 enum SearchMode { ALL_ENTRIES, VALID_ENTRIES }; 3252 enum SearchMode { ALL_ENTRIES, VALID_ENTRIES };
3241 3253
3242 template <SearchMode search_mode, typename T> 3254 template <SearchMode search_mode, typename T>
3243 inline int Search(T* array, Name* name, int valid_entries = 0, 3255 inline int Search(T* array, Name* name, int valid_entries = 0,
3244 int* out_insertion_index = NULL); 3256 int* out_insertion_index = NULL);
3245 3257
3246 3258
3247 // HashTable is a subclass of FixedArray that implements a hash table 3259 // HashTable is a subclass of FixedArray that implements a hash table
3248 // that uses open addressing and quadratic probing. 3260 // that uses open addressing and quadratic probing.
(...skipping 8329 matching lines...) Expand 10 before | Expand all | Expand 10 after
11578 } 11590 }
11579 }; 11591 };
11580 11592
11581 11593
11582 } // NOLINT, false-positive due to second-order macros. 11594 } // NOLINT, false-positive due to second-order macros.
11583 } // NOLINT, false-positive due to second-order macros. 11595 } // NOLINT, false-positive due to second-order macros.
11584 11596
11585 #include "src/objects/object-macros-undef.h" 11597 #include "src/objects/object-macros-undef.h"
11586 11598
11587 #endif // V8_OBJECTS_H_ 11599 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/counters.h ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698