Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 13edfd78ba7bc46f569600fb2b2c7d8a841734cf..9cb7250819ee69ad34ba920012c64234209be652 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1638,6 +1638,11 @@ class JSObject: public JSReceiver { |
MUST_USE_RESULT inline MaybeObject* SetHiddenPropertiesObject( |
Object* hidden_obj); |
+ MUST_USE_RESULT MaybeObject* GetHiddenProperties(bool create_if_needed); |
Vitaly Repeshko
2011/07/26 13:53:14
Document what is returned when there are no existi
Michael Starzinger
2011/07/26 22:30:23
Fixed.
|
+ |
+ // Retrieves a permanent object identity hash code. |
+ MUST_USE_RESULT MaybeObject* GetIdentityHash(); |
+ |
MUST_USE_RESULT MaybeObject* DeleteProperty(String* name, DeleteMode mode); |
MUST_USE_RESULT MaybeObject* DeleteElement(uint32_t index, DeleteMode mode); |
@@ -2913,6 +2918,37 @@ class NumberDictionary: public Dictionary<NumberDictionaryShape, uint32_t> { |
}; |
+class ObjectDictionaryShape { |
+ public: |
+ static inline bool IsMatch(JSObject* key, Object* other); |
+ static inline uint32_t Hash(JSObject* key); |
+ static inline uint32_t HashForObject(JSObject* key, Object* object); |
+ MUST_USE_RESULT static inline MaybeObject* AsObject(JSObject* key); |
+ static const int kPrefixSize = 2; |
+ static const int kEntrySize = 3; |
+ static const bool kIsEnumerable = false; |
+}; |
+ |
+ |
+class ObjectDictionary: public Dictionary<ObjectDictionaryShape, JSObject*> { |
Vitaly Repeshko
2011/07/26 13:53:14
Needs a comment.
Michael Starzinger
2011/07/26 22:30:23
Fixed.
|
+ public: |
+ static inline ObjectDictionary* cast(Object* obj) { |
+ ASSERT(obj->IsDictionary()); |
+ return reinterpret_cast<ObjectDictionary*>(obj); |
+ } |
+ |
+ // Specialized version which checks whether objects have an identity hash. |
+ int FindEntry(JSObject* key); |
+ int FindEntry(Isolate* isolate, JSObject* key); |
Vitaly Repeshko
2011/07/26 13:53:14
Doesn't seem to be defined/called. Remove?
Vitaly Repeshko
2011/07/27 15:42:26
Did you miss this one?
Michael Starzinger
2011/07/28 01:23:18
Fixed. Yep, missed that one.
|
+ |
+ // Specialized version which makes sure objects have an identity hash. |
+ MUST_USE_RESULT MaybeObject* Add(JSObject* key, Object* value); |
+ MUST_USE_RESULT MaybeObject* Add(JSObject* key, |
Vitaly Repeshko
2011/07/26 13:53:14
Same here.
Are PropertyDetails really required? I
Michael Starzinger
2011/07/26 22:30:23
In that case the ObjectDictionary should use HashT
Vitaly Repeshko
2011/07/27 15:42:26
Yes, Dictionaries are used for storing properties
Michael Starzinger
2011/07/28 01:23:18
Fixed. Required a lot of other changes, but it bec
|
+ Object* value, |
+ PropertyDetails details); |
+}; |
+ |
+ |
// JSFunctionResultCache caches results of some JSFunction invocation. |
// It is a fixed array with fixed structure: |
// [0]: factory function |