5#ifndef V8_OBJECTS_PROPERTY_ARRAY_INL_H_
6#define V8_OBJECTS_PROPERTY_ARRAY_INL_H_
22#include "torque-generated/src/objects/property-array-tq-inl.inc"
26SMI_ACCESSORS(PropertyArray, length_and_hash, kLengthAndHashOffset)
32 return get(cage_base, index);
44 return get(cage_base, index, tag);
48 SeqCstAccessTag tag)
const {
56 DCHECK(IsPropertyArray(*
this));
74 DCHECK(IsPropertyArray(*
this));
86 return Swap(cage_base, index, value, tag);
91 DCHECK(IsPropertyArray(*
this));
105 DCHECK(IsPropertyArray(*
this));
130 set_length_and_hash(len);
140 int value = length_and_hash();
148 int src_index,
int len,
150 if (len == 0)
return;
152 ObjectSlot dst_slot(dst->data_start() + dst_index);
153 ObjectSlot src_slot(src->data_start() + src_index);
154 isolate->heap()->CopyRange(dst, dst_slot, src_slot, len, mode);
static constexpr T decode(U value)
static constexpr bool is_valid(T value)
static V8_NODISCARD constexpr U update(U previous, T value)
static void CopyElements(Isolate *isolate, Tagged< PropertyArray > dst, int dst_index, Tagged< PropertyArray > src, int src_index, int len, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
Tagged< Object > Swap(int index, Tagged< Object > value, SeqCstAccessTag tag)
void set(int index, Tagged< Object > value)
Tagged< Object > CompareAndSwap(int index, Tagged< Object > expected, Tagged< Object > value, SeqCstAccessTag tag)
static constexpr int OffsetOfElementAt(int index)
Tagged< JSAny > get(int index) const
ObjectSlot RawFieldOfElementAt(int index)
void initialize_length(int length)
static PtrType Relaxed_Load(Tagged< HeapObject > host, int offset=0)
static PtrType SeqCst_CompareAndSwap(Tagged< HeapObject > host, int offset, PtrType old, PtrType value)
static PtrType SeqCst_Load(Tagged< HeapObject > host, int offset=0)
static PtrType SeqCst_Swap(Tagged< HeapObject > host, int offset, PtrType value)
ZoneVector< RpoNumber > & result
Tagged(T object) -> Tagged< T >
V8_INLINE PtrComprCageBase GetPtrComprCageBase()
bool IsShared(Tagged< Object > obj)
static constexpr ReleaseStoreTag kReleaseStore
static constexpr AcquireLoadTag kAcquireLoad
#define TQ_OBJECT_CONSTRUCTORS_IMPL(Type)
#define SMI_ACCESSORS(holder, name, offset)
#define CONDITIONAL_WRITE_BARRIER(object, offset, value, mode)
#define WRITE_BARRIER(object, offset, value)
#define SEQ_CST_WRITE_FIELD(p, offset, value)
#define RELEASE_ACQUIRE_SMI_ACCESSORS(holder, name, offset)
#define RELAXED_WRITE_FIELD(p, offset, value)
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)