5#ifndef V8_OBJECTS_PROTOTYPE_INFO_INL_H_
6#define V8_OBJECTS_PROTOTYPE_INFO_INL_H_
24#include "torque-generated/src/objects/prototype-info-tq-inl.inc"
35 auto derived = derived_maps();
36 if (IsUndefined(derived)) {
48 auto derived = derived_maps(tag);
49 if (IsUndefined(derived)) {
64 if (IsUndefined(info->derived_maps())) {
67 derived->set_length(1);
78 if (IsUndefined(derived_maps())) {
83 for (
int i = 1;
i < derived->
length(); ++
i) {
88 if (to->GetConstructor() == from->GetConstructor() &&
89 to->instance_type() == from->instance_type()) {
100 if (IsUndefined(info->derived_maps())) {
106 derived->set_length(2);
113 for (;
i < derived->
length(); ++
i) {
123 bigger->set_length(
i + 1);
124 if (*bigger != *derived) {
130 bool is_proto_info =
object !=
Smi::zero();
131 DCHECK_EQ(is_proto_info, IsPrototypeInfo(
object));
132 return is_proto_info;
136 ShouldBeFastBit::kShift)
static void AddDerivedMap(DirectHandle< PrototypeInfo > info, DirectHandle< Map > to, Isolate *isolate)
Tagged< MaybeObject > GetDerivedMap(DirectHandle< Map > from)
static void SetObjectCreateMap(DirectHandle< PrototypeInfo > info, DirectHandle< Map > map, Isolate *isolate)
Tagged< MaybeObject > ObjectCreateMap()
static bool IsPrototypeInfoFast(Tagged< Object > object)
static void set_empty_slot_index(Tagged< WeakArrayList > array, int index)
static const int kEmptySlotIndex
static void MarkSlotEmpty(Tagged< WeakArrayList > array, int index)
static Tagged< Smi > empty_slot_index(Tagged< WeakArrayList > array)
static constexpr Tagged< Smi > FromInt(int value)
static constexpr Tagged< Smi > zero()
static PtrType load(Tagged< HeapObject > host, int offset=0)
constexpr bool IsCleared() const
bool GetHeapObjectIfWeak(Tagged< HeapObject > *result) const
bool ToSmi(Tagged< Smi > *value) const
constexpr bool IsWeakOrCleared() const
static Handle< WeakArrayList > EnsureSpace(Isolate *isolate, Handle< WeakArrayList > array, int length, AllocationType allocation=AllocationType::kYoung)
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
Tagged(T object) -> Tagged< T >
Tagged< MaybeWeak< T > > MakeWeak(Tagged< T > value)
Tagged< ClearedWeakValue > ClearedValue(PtrComprCageBase cage_base)
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
static constexpr ReleaseStoreTag kReleaseStore
#define BOOL_ACCESSORS(holder, field, name, offset)
#define TQ_OBJECT_CONSTRUCTORS_IMPL(Type)
#define RELEASE_ACQUIRE_ACCESSORS(holder, name, type, offset)
#define DEF_GETTER(Camel, Lower, Bit)
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)
#define DCHECK_EQ(v1, v2)
#define DCHECK_GT(v1, v2)