5 #ifndef V8_OBJECTS_PROTOTYPE_INFO_H_ 6 #define V8_OBJECTS_PROTOTYPE_INFO_H_ 8 #include "src/objects.h" 9 #include "src/objects/fixed-array.h" 12 #include "src/objects/object-macros.h" 20 static const int UNREGISTERED = -1;
26 DECL_ACCESSORS(module_namespace,
Object)
30 DECL_ACCESSORS(prototype_users,
Object)
35 inline Map ObjectCreateMap();
36 inline bool HasObjectCreateMap();
40 inline int registry_slot()
const;
41 inline void set_registry_slot(
int slot);
44 inline int bit_field()
const;
45 inline void set_bit_field(
int bit_field);
47 DECL_BOOLEAN_ACCESSORS(should_be_fast_map)
55 static const int kJSModuleNamespaceOffset = HeapObject::kHeaderSize;
56 static const int kPrototypeUsersOffset =
57 kJSModuleNamespaceOffset + kPointerSize;
58 static const int kRegistrySlotOffset = kPrototypeUsersOffset + kPointerSize;
59 static const int kValidityCellOffset = kRegistrySlotOffset + kPointerSize;
60 static const int kObjectCreateMapOffset = kValidityCellOffset + kPointerSize;
61 static const int kBitFieldOffset = kObjectCreateMapOffset + kPointerSize;
62 static const int kSize = kBitFieldOffset + kPointerSize;
65 static const int kShouldBeFastBit = 0;
83 static inline void MarkSlotEmpty(
WeakArrayList* array,
int index);
88 typedef void (*CompactionCallback)(
HeapObject* object,
int from_index,
91 CompactionCallback callback,
92 PretenureFlag pretenure = NOT_TENURED);
98 static const int kEmptySlotIndex = 0;
99 static const int kFirstIndex = 1;
101 static const int kNoEmptySlotsMarker = 0;
105 static inline void set_empty_slot_index(
WeakArrayList* array,
int index);
115 #include "src/objects/object-macros-undef.h" 117 #endif // V8_OBJECTS_PROTOTYPE_INFO_H_