| OLD | NEW |
| 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 | 9 |
| 10 #include "src/assert-scope.h" | 10 #include "src/assert-scope.h" |
| (...skipping 1957 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1968 // be returned in case no hash was created yet. | 1968 // be returned in case no hash was created yet. |
| 1969 static inline Handle<Object> GetIdentityHash(Isolate* isolate, | 1969 static inline Handle<Object> GetIdentityHash(Isolate* isolate, |
| 1970 Handle<JSReceiver> object); | 1970 Handle<JSReceiver> object); |
| 1971 | 1971 |
| 1972 // Retrieves a permanent object identity hash code. May create and store a | 1972 // Retrieves a permanent object identity hash code. May create and store a |
| 1973 // hash code if needed and none exists. | 1973 // hash code if needed and none exists. |
| 1974 inline static Handle<Smi> GetOrCreateIdentityHash( | 1974 inline static Handle<Smi> GetOrCreateIdentityHash( |
| 1975 Handle<JSReceiver> object); | 1975 Handle<JSReceiver> object); |
| 1976 | 1976 |
| 1977 // ES6 [[OwnPropertyKeys]] (modulo return type) | 1977 // ES6 [[OwnPropertyKeys]] (modulo return type) |
| 1978 MUST_USE_RESULT static MaybeHandle<FixedArray> OwnPropertyKeys( | 1978 MUST_USE_RESULT static inline MaybeHandle<FixedArray> OwnPropertyKeys( |
| 1979 Handle<JSReceiver> object) { | 1979 Handle<JSReceiver> object); |
| 1980 return GetKeys(object, OWN_ONLY, ALL_PROPERTIES, CONVERT_TO_STRING); | |
| 1981 } | |
| 1982 | |
| 1983 // Computes the enumerable keys for a JSObject. Used for implementing | |
| 1984 // "for (n in object) { }". | |
| 1985 MUST_USE_RESULT static MaybeHandle<FixedArray> GetKeys( | |
| 1986 Handle<JSReceiver> object, KeyCollectionType type, PropertyFilter filter, | |
| 1987 GetKeysConversion keys_conversion = KEEP_NUMBERS, | |
| 1988 bool filter_proxy_keys_ = true); | |
| 1989 | 1980 |
| 1990 MUST_USE_RESULT static MaybeHandle<FixedArray> GetOwnValues( | 1981 MUST_USE_RESULT static MaybeHandle<FixedArray> GetOwnValues( |
| 1991 Handle<JSReceiver> object, PropertyFilter filter); | 1982 Handle<JSReceiver> object, PropertyFilter filter); |
| 1992 | 1983 |
| 1993 MUST_USE_RESULT static MaybeHandle<FixedArray> GetOwnEntries( | 1984 MUST_USE_RESULT static MaybeHandle<FixedArray> GetOwnEntries( |
| 1994 Handle<JSReceiver> object, PropertyFilter filter); | 1985 Handle<JSReceiver> object, PropertyFilter filter); |
| 1995 | 1986 |
| 1996 // Layout description. | 1987 // Layout description. |
| 1997 static const int kPropertiesOffset = HeapObject::kHeaderSize; | 1988 static const int kPropertiesOffset = HeapObject::kHeaderSize; |
| 1998 static const int kHeaderSize = HeapObject::kHeaderSize + kPointerSize; | 1989 static const int kHeaderSize = HeapObject::kHeaderSize + kPointerSize; |
| (...skipping 1974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3973 class JSSetIterator; | 3964 class JSSetIterator; |
| 3974 | 3965 |
| 3975 | 3966 |
| 3976 class OrderedHashSet: public OrderedHashTable< | 3967 class OrderedHashSet: public OrderedHashTable< |
| 3977 OrderedHashSet, JSSetIterator, 1> { | 3968 OrderedHashSet, JSSetIterator, 1> { |
| 3978 public: | 3969 public: |
| 3979 DECLARE_CAST(OrderedHashSet) | 3970 DECLARE_CAST(OrderedHashSet) |
| 3980 | 3971 |
| 3981 static Handle<OrderedHashSet> Add(Handle<OrderedHashSet> table, | 3972 static Handle<OrderedHashSet> Add(Handle<OrderedHashSet> table, |
| 3982 Handle<Object> value); | 3973 Handle<Object> value); |
| 3974 static Handle<FixedArray> ConvertToKeysArray(Handle<OrderedHashSet> table, |
| 3975 GetKeysConversion convert); |
| 3983 }; | 3976 }; |
| 3984 | 3977 |
| 3985 | 3978 |
| 3986 class JSMapIterator; | 3979 class JSMapIterator; |
| 3987 | 3980 |
| 3988 | 3981 |
| 3989 class OrderedHashMap | 3982 class OrderedHashMap |
| 3990 : public OrderedHashTable<OrderedHashMap, JSMapIterator, 2> { | 3983 : public OrderedHashTable<OrderedHashMap, JSMapIterator, 2> { |
| 3991 public: | 3984 public: |
| 3992 DECLARE_CAST(OrderedHashMap) | 3985 DECLARE_CAST(OrderedHashMap) |
| (...skipping 6774 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10767 } | 10760 } |
| 10768 return value; | 10761 return value; |
| 10769 } | 10762 } |
| 10770 }; | 10763 }; |
| 10771 | 10764 |
| 10772 | 10765 |
| 10773 } // NOLINT, false-positive due to second-order macros. | 10766 } // NOLINT, false-positive due to second-order macros. |
| 10774 } // NOLINT, false-positive due to second-order macros. | 10767 } // NOLINT, false-positive due to second-order macros. |
| 10775 | 10768 |
| 10776 #endif // V8_OBJECTS_H_ | 10769 #endif // V8_OBJECTS_H_ |
| OLD | NEW |