| Index: src/objects.h | 
| diff --git a/src/objects.h b/src/objects.h | 
| index 8a83d00732dbb47696b8bf719191c051e75cac5d..67937a82fcc6570da1ae5a373b0d3241f47d649c 100644 | 
| --- a/src/objects.h | 
| +++ b/src/objects.h | 
| @@ -1576,27 +1576,25 @@ class JSObject: public JSReceiver { | 
| // Accessors for hidden properties object. | 
| // | 
| // Hidden properties are not local properties of the object itself. | 
| -  // Instead they are stored on an auxiliary JSObject stored as a local | 
| +  // Instead they are stored in an auxiliary structure kept as a local | 
| // property with a special name Heap::hidden_symbol(). But if the | 
| // receiver is a JSGlobalProxy then the auxiliary object is a property | 
| -  // of its prototype. | 
| -  // | 
| -  // Has/Get/SetHiddenPropertiesObject methods don't allow the holder to be | 
| -  // a JSGlobalProxy. Use BypassGlobalProxy method above to get to the real | 
| -  // holder. | 
| -  // | 
| -  // These accessors do not touch interceptors or accessors. | 
| -  inline bool HasHiddenPropertiesObject(); | 
| -  inline Object* GetHiddenPropertiesObject(); | 
| -  MUST_USE_RESULT inline MaybeObject* SetHiddenPropertiesObject( | 
| -      Object* hidden_obj); | 
| - | 
| -  // Retrieves the hidden properties object. | 
| -  // | 
| -  // The undefined value might be returned in case no hidden properties object | 
| -  // is present and creation was omitted. | 
| -  inline bool HasHiddenProperties(); | 
| -  MUST_USE_RESULT MaybeObject* GetHiddenProperties(CreationFlag flag); | 
| +  // of its prototype, and if it's a detached proxy, then you can't have | 
| +  // hidden properties. | 
| + | 
| +  // Sets a hidden property on this object. Returns this object if successful, | 
| +  // undefined if called on a detached proxy, and a failure if a GC | 
| +  // is required | 
| +  MaybeObject* SetHiddenProperty(String* key, Object* value); | 
| +  // Gets the value of a hidden property with the given key. Returns undefined | 
| +  // if the property doesn't exist (or if called on a detached proxy), | 
| +  // otherwise returns the value set for the key. | 
| +  Object* GetHiddenProperty(String* key); | 
| +  // Deletes a hidden property. Deleting a non-existing property is | 
| +  // considered successful. | 
| +  void DeleteHiddenProperty(String* key); | 
| +  // Returns true if the object has a property with the hidden symbol as name. | 
| +  bool HasHiddenProperties(); | 
|  | 
| MUST_USE_RESULT MaybeObject* GetIdentityHash(CreationFlag flag); | 
| MUST_USE_RESULT MaybeObject* SetIdentityHash(Object* hash, CreationFlag flag); | 
| @@ -2037,6 +2035,15 @@ class JSObject: public JSReceiver { | 
|  | 
| void LookupInDescriptor(String* name, LookupResult* result); | 
|  | 
| +  // Returns the hidden properties backing store object, currently | 
| +  // a StringDictionary, stored on this object. | 
| +  // If no hidden properties object has been put on this object, | 
| +  // return undefined, unless create_if_absent is true, in which case | 
| +  // a new dictionary is created, added to this object, and returned. | 
| +  MaybeObject* GetHiddenPropertiesDictionary(bool create_if_absent); | 
| +  // Updates the existing hidden properties dictionary. | 
| +  MaybeObject* SetHiddenPropertiesDictionary(StringDictionary* dictionary); | 
| + | 
| DISALLOW_IMPLICIT_CONSTRUCTORS(JSObject); | 
| }; | 
|  | 
| @@ -2862,7 +2869,7 @@ class StringDictionary: public Dictionary<StringDictionaryShape, String*> { | 
| JSObject* obj, | 
| int unused_property_fields); | 
|  | 
| -  // Find entry for key otherwise return kNotFound. Optimzed version of | 
| +  // Find entry for key, otherwise return kNotFound. Optimized version of | 
| // HashTable::FindEntry. | 
| int FindEntry(String* key); | 
| }; | 
|  |