Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 287f6bb2e1db6c644564602ef3f551d33a8bb877..168fe71ac458f24ea9f8b35f50ed2522737e68c4 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -2170,6 +2170,8 @@ class JSObject: public JSReceiver { |
static void OptimizeAsPrototype(Handle<JSObject> object, |
PrototypeOptimizationMode mode); |
static void ReoptimizeIfPrototype(Handle<JSObject> object); |
+ static void MakePrototypesFast(Handle<Object> receiver, |
+ WhereToStart where_to_start, Isolate* isolate); |
static void LazyRegisterPrototypeUser(Handle<Map> user, Isolate* isolate); |
static void UpdatePrototypeUserRegistration(Handle<Map> old_map, |
Handle<Map> new_map, |
@@ -5747,6 +5749,9 @@ class Map: public HeapObject { |
Handle<JSObject> prototype, Isolate* isolate); |
static Handle<PrototypeInfo> GetOrCreatePrototypeInfo( |
Handle<Map> prototype_map, Isolate* isolate); |
+ inline bool should_be_fast_prototype_map() const; |
+ static void SetShouldBeFastPrototypeMap(Handle<Map> map, bool value, |
+ Isolate* isolate); |
// [prototype chain validity cell]: Associated with a prototype object, |
// stored in that object's map's PrototypeInfo, indicates that prototype |
@@ -6314,6 +6319,11 @@ class PrototypeInfo : public Struct { |
// given receiver embed the currently valid cell for that receiver's prototype |
// during their compilation and check it on execution. |
DECL_ACCESSORS(validity_cell, Object) |
+ // [bit_field] |
+ inline int bit_field() const; |
+ inline void set_bit_field(int bit_field); |
+ |
+ DECL_BOOLEAN_ACCESSORS(should_be_fast_map) |
DECLARE_CAST(PrototypeInfo) |
@@ -6324,8 +6334,11 @@ 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 kConstructorNameOffset = kValidityCellOffset + kPointerSize; |
- static const int kSize = kConstructorNameOffset + kPointerSize; |
+ static const int kBitFieldOffset = kValidityCellOffset + kPointerSize; |
+ static const int kSize = kBitFieldOffset + kPointerSize; |
+ |
+ // Bit field usage. |
+ static const int kShouldBeFastBit = 0; |
private: |
DISALLOW_IMPLICIT_CONSTRUCTORS(PrototypeInfo); |