Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index d812c326297ebcf4c081af598dde69ee1da7a313..29aefb21eef0a30fcdb74dee546b75121ed56c0f 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -6304,6 +6304,13 @@ class PrototypeInfo : public Struct { |
// [prototype_users]: WeakFixedArray containing maps using this prototype, |
// or Smi(0) if uninitialized. |
DECL_ACCESSORS(prototype_users, Object) |
+ |
+ // [object_create_map]: A field caching the map for Object.create(prototype). |
+ static inline void SetObjectCreateMap(Handle<PrototypeInfo> info, |
+ Handle<Map> map); |
+ inline Map* ObjectCreateMap(); |
+ inline bool HasObjectCreateMap(); |
+ |
// [registry_slot]: Slot in prototype's user registry where this user |
// is stored. Returns UNREGISTERED if this prototype has not been registered. |
inline int registry_slot() const; |
@@ -6330,13 +6337,16 @@ class PrototypeInfo : public Struct { |
static const int kPrototypeUsersOffset = HeapObject::kHeaderSize; |
static const int kRegistrySlotOffset = kPrototypeUsersOffset + kPointerSize; |
static const int kValidityCellOffset = kRegistrySlotOffset + kPointerSize; |
- static const int kBitFieldOffset = kValidityCellOffset + kPointerSize; |
+ static const int kObjectCreateMap = kValidityCellOffset + kPointerSize; |
+ static const int kBitFieldOffset = kObjectCreateMap + kPointerSize; |
static const int kSize = kBitFieldOffset + kPointerSize; |
// Bit field usage. |
static const int kShouldBeFastBit = 0; |
private: |
+ DECL_ACCESSORS(object_create_map, Object) |
+ |
DISALLOW_IMPLICIT_CONSTRUCTORS(PrototypeInfo); |
}; |