Index: src/objects.h |
=================================================================== |
--- src/objects.h (revision 3292) |
+++ src/objects.h (working copy) |
@@ -1407,6 +1407,9 @@ |
Object* GetPropertyPostInterceptor(JSObject* receiver, |
String* name, |
PropertyAttributes* attributes); |
+ Object* GetLocalPropertyPostInterceptor(JSObject* receiver, |
+ String* name, |
+ PropertyAttributes* attributes); |
Object* GetLazyProperty(Object* receiver, |
LookupResult* result, |
String* name, |
@@ -1428,6 +1431,27 @@ |
return GetLocalPropertyAttribute(name) != ABSENT; |
} |
+ // If the receiver is a JSGlobalProxy this method will return its prototype, |
+ // otherwise the result is the receiver itself. |
+ inline Object* BypassGlobalProxy(); |
+ |
+ // 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 |
+ // 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(); |
+ inline Object* SetHiddenPropertiesObject(Object* hidden_obj); |
+ |
Object* DeleteProperty(String* name, DeleteMode mode); |
Object* DeleteElement(uint32_t index, DeleteMode mode); |
Object* DeleteLazyProperty(LookupResult* result, |