Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index c52a17bef6192a1203d7d6acfc388ae03b538d34..eb5fc790900da0df9bf82541d656df6da55808a2 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -980,6 +980,7 @@ template <class C> inline bool Is(Object* obj); |
V(JSRegExp) \ |
V(HashTable) \ |
V(Dictionary) \ |
+ V(UnseededNumberDictionary) \ |
V(StringTable) \ |
V(StringSet) \ |
V(NormalizedMapCache) \ |
@@ -1078,7 +1079,6 @@ class Object { |
INLINE(bool IsNameDictionary() const); |
INLINE(bool IsGlobalDictionary() const); |
INLINE(bool IsSeededNumberDictionary() const); |
- INLINE(bool IsUnseededNumberDictionary() const); |
INLINE(bool IsOrderedHashSet() const); |
INLINE(bool IsOrderedHashMap() const); |
@@ -3124,6 +3124,7 @@ class BaseShape { |
DCHECK(UsesSeed); |
return HashForObject(key, object); |
} |
+ static inline Map* GetMap(Isolate* isolate); |
}; |
@@ -3646,7 +3647,6 @@ class NumberDictionaryShape : public BaseDictionaryShape<uint32_t> { |
public: |
static inline bool IsMatch(uint32_t key, Object* other); |
static inline Handle<Object> AsHandle(Isolate* isolate, uint32_t key); |
- static const int kEntrySize = 3; |
static const bool kIsEnumerable = false; |
}; |
@@ -3655,6 +3655,7 @@ class SeededNumberDictionaryShape : public NumberDictionaryShape { |
public: |
static const bool UsesSeed = true; |
static const int kPrefixSize = 2; |
+ static const int kEntrySize = 3; |
static inline uint32_t SeededHash(uint32_t key, uint32_t seed); |
static inline uint32_t SeededHashForObject(uint32_t key, |
@@ -3666,9 +3667,24 @@ class SeededNumberDictionaryShape : public NumberDictionaryShape { |
class UnseededNumberDictionaryShape : public NumberDictionaryShape { |
public: |
static const int kPrefixSize = 0; |
+ static const int kEntrySize = 2; |
static inline uint32_t Hash(uint32_t key); |
static inline uint32_t HashForObject(uint32_t key, Object* object); |
+ |
+ template <typename Dictionary> |
+ static inline PropertyDetails DetailsAt(Dictionary* dict, int entry) { |
+ UNREACHABLE(); |
+ return PropertyDetails::Empty(); |
+ } |
+ |
+ template <typename Dictionary> |
+ static inline void DetailsAtPut(Dictionary* dict, int entry, |
+ PropertyDetails value) { |
+ UNREACHABLE(); |
+ } |
+ |
+ static inline Map* GetMap(Isolate* isolate); |
}; |