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 #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 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 2240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2251 static inline int GetHeaderSize(InstanceType instance_type); | 2251 static inline int GetHeaderSize(InstanceType instance_type); |
2252 inline int GetHeaderSize(); | 2252 inline int GetHeaderSize(); |
2253 | 2253 |
2254 static inline int GetInternalFieldCount(Map* map); | 2254 static inline int GetInternalFieldCount(Map* map); |
2255 inline int GetInternalFieldCount(); | 2255 inline int GetInternalFieldCount(); |
2256 inline int GetInternalFieldOffset(int index); | 2256 inline int GetInternalFieldOffset(int index); |
2257 inline Object* GetInternalField(int index); | 2257 inline Object* GetInternalField(int index); |
2258 inline void SetInternalField(int index, Object* value); | 2258 inline void SetInternalField(int index, Object* value); |
2259 inline void SetInternalField(int index, Smi* value); | 2259 inline void SetInternalField(int index, Smi* value); |
2260 | 2260 |
2261 // Returns the number of properties on this object filtering out properties | |
2262 // with the specified attributes (ignoring interceptors). | |
2263 int NumberOfOwnProperties(PropertyFilter filter = ALL_PROPERTIES); | |
2264 // Fill in details for properties into storage starting at the specified | |
2265 // index. Returns the number of properties added. | |
2266 int GetOwnPropertyNames(FixedArray* storage, int index, | |
2267 PropertyFilter filter = ALL_PROPERTIES); | |
2268 void CollectOwnPropertyNames(KeyAccumulator* keys, | 2261 void CollectOwnPropertyNames(KeyAccumulator* keys, |
2269 PropertyFilter filter = ALL_PROPERTIES); | 2262 PropertyFilter filter = ALL_PROPERTIES); |
2270 | 2263 |
2271 // Returns the number of properties on this object filtering out properties | 2264 // Returns the number of properties on this object filtering out properties |
2272 // with the specified attributes (ignoring interceptors). | 2265 // with the specified attributes (ignoring interceptors). |
2273 // TODO(jkummerow): Deprecated, only used by Object.observe. | 2266 // TODO(jkummerow): Deprecated, only used by Object.observe. |
2274 int NumberOfOwnElements(PropertyFilter filter); | 2267 int NumberOfOwnElements(PropertyFilter filter); |
2275 // Returns the number of elements on this object filtering out elements | 2268 // Returns the number of elements on this object filtering out elements |
2276 // with the specified attributes (ignoring interceptors). | 2269 // with the specified attributes (ignoring interceptors). |
2277 // TODO(jkummerow): Deprecated, only used by Object.observe. | 2270 // TODO(jkummerow): Deprecated, only used by Object.observe. |
(...skipping 1068 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3346 Key key) { | 3339 Key key) { |
3347 return DerivedHashTable::Shrink(dictionary, key); | 3340 return DerivedHashTable::Shrink(dictionary, key); |
3348 } | 3341 } |
3349 | 3342 |
3350 // Sorting support | 3343 // Sorting support |
3351 // TODO(dcarney): templatize or move to SeededNumberDictionary | 3344 // TODO(dcarney): templatize or move to SeededNumberDictionary |
3352 void CopyValuesTo(FixedArray* elements); | 3345 void CopyValuesTo(FixedArray* elements); |
3353 | 3346 |
3354 // Returns the number of elements in the dictionary filtering out properties | 3347 // Returns the number of elements in the dictionary filtering out properties |
3355 // with the specified attributes. | 3348 // with the specified attributes. |
| 3349 // TODO(jkummerow): Deprecated, only used by Object.observe. |
3356 int NumberOfElementsFilterAttributes(PropertyFilter filter); | 3350 int NumberOfElementsFilterAttributes(PropertyFilter filter); |
3357 | 3351 |
3358 // Returns the number of enumerable elements in the dictionary. | 3352 // Returns the number of enumerable elements in the dictionary. |
| 3353 // TODO(jkummerow): Deprecated, only used by Object.observe. |
3359 int NumberOfEnumElements() { | 3354 int NumberOfEnumElements() { |
3360 return NumberOfElementsFilterAttributes(ENUMERABLE_STRINGS); | 3355 return NumberOfElementsFilterAttributes(ENUMERABLE_STRINGS); |
3361 } | 3356 } |
3362 | 3357 |
3363 // Returns true if the dictionary contains any elements that are non-writable, | 3358 // Returns true if the dictionary contains any elements that are non-writable, |
3364 // non-configurable, non-enumerable, or have getters/setters. | 3359 // non-configurable, non-enumerable, or have getters/setters. |
3365 bool HasComplexElements(); | 3360 bool HasComplexElements(); |
3366 | 3361 |
3367 enum SortMode { UNSORTED, SORTED }; | 3362 enum SortMode { UNSORTED, SORTED }; |
3368 | 3363 |
3369 // Fill in details for properties into storage. | 3364 // Fill in details for properties into storage. |
3370 // Returns the number of properties added. | 3365 // Returns the number of properties added. |
| 3366 // TODO(jkummerow): Deprecated, only used by Object.observe. |
3371 int CopyKeysTo(FixedArray* storage, int index, PropertyFilter filter, | 3367 int CopyKeysTo(FixedArray* storage, int index, PropertyFilter filter, |
3372 SortMode sort_mode); | 3368 SortMode sort_mode); |
3373 // Collect the keys into the given KeyAccumulator, in ascending chronological | 3369 // Collect the keys into the given KeyAccumulator, in ascending chronological |
3374 // order of property creation. | 3370 // order of property creation. |
3375 static void CollectKeysTo(Handle<Dictionary<Derived, Shape, Key> > dictionary, | 3371 static void CollectKeysTo(Handle<Dictionary<Derived, Shape, Key> > dictionary, |
3376 KeyAccumulator* keys, PropertyFilter filter); | 3372 KeyAccumulator* keys, PropertyFilter filter); |
3377 | 3373 |
3378 // Copies enumerable keys to preallocated fixed array. | 3374 // Copies enumerable keys to preallocated fixed array. |
3379 void CopyEnumKeysTo(FixedArray* storage); | 3375 void CopyEnumKeysTo(FixedArray* storage); |
3380 | 3376 |
(...skipping 7304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10685 } | 10681 } |
10686 return value; | 10682 return value; |
10687 } | 10683 } |
10688 }; | 10684 }; |
10689 | 10685 |
10690 | 10686 |
10691 } // NOLINT, false-positive due to second-order macros. | 10687 } // NOLINT, false-positive due to second-order macros. |
10692 } // NOLINT, false-positive due to second-order macros. | 10688 } // NOLINT, false-positive due to second-order macros. |
10693 | 10689 |
10694 #endif // V8_OBJECTS_H_ | 10690 #endif // V8_OBJECTS_H_ |
OLD | NEW |