| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 9765fe2a0ab242f897145ea7d763ea21a8616b27..41f4d3124b70e68fd05912bbaeb75b0027182be4 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -1640,6 +1640,11 @@ class JSObject: public JSReceiver {
|
| MUST_USE_RESULT inline MaybeObject* SetHiddenPropertiesObject(
|
| Object* hidden_obj);
|
|
|
| + MUST_USE_RESULT MaybeObject* GetHiddenProperties(bool create_if_needed);
|
| +
|
| + // 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);
|
|
|
| @@ -2921,6 +2926,27 @@ 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*> {
|
| + public:
|
| + static inline ObjectDictionary* cast(Object* obj) {
|
| + ASSERT(obj->IsDictionary());
|
| + return reinterpret_cast<ObjectDictionary*>(obj);
|
| + }
|
| +};
|
| +
|
| +
|
| // JSFunctionResultCache caches results of some JSFunction invocation.
|
| // It is a fixed array with fixed structure:
|
| // [0]: factory function
|
|
|