Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index f9ed74a480a42e74ab7b789d5e34aaa6c98b6845..f36cd1f083f610a8e646ae22d94d0a4057d98ecd 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1832,6 +1832,7 @@ class JSObject: public JSReceiver { |
Handle<HeapObject> user); |
static void UnregisterPrototypeUser(Handle<JSObject> prototype, |
Handle<HeapObject> user); |
+ static void InvalidatePrototypeChains(Map* map); |
// Retrieve interceptors. |
InterceptorInfo* GetNamedInterceptor(); |
@@ -6028,6 +6029,15 @@ class Map: public HeapObject { |
// (which prototype maps don't have). |
DECL_ACCESSORS(prototype_info, Object) |
+ // [prototype chain validity cell]: Associated with a prototype object, |
+ // stored in that object's map's PrototypeInfo, indicates that prototype |
+ // chains through this object are currently valid. The cell will be |
+ // invalidated and replaced when the prototype chain changes. |
+ static Handle<Cell> GetOrCreatePrototypeChainValidityCell(Handle<Map> map, |
+ Isolate* isolate); |
+ static const int kPrototypeChainValid = 0; |
+ static const int kPrototypeChainInvalid = 1; |
+ |
Map* FindRootMap(); |
Map* FindFieldOwner(int descriptor); |