5#ifndef V8_OBJECTS_ELEMENTS_H_
6#define V8_OBJECTS_ELEMENTS_H_
145 uint32_t new_capacity) = 0;
148 uint32_t concat_size,
149 uint32_t result_length);
153 uint32_t push_size) = 0;
157 uint32_t unshift_size) = 0;
203 size_t length,
size_t offset) = 0;
245 uint32_t destination_start,
int copy_size) = 0;
267 uintptr_t length, uintptr_t
offset);
virtual bool HasElement(Tagged< JSObject > holder, uint32_t index, Tagged< FixedArrayBase > backing_store, PropertyFilter filter=ALL_PROPERTIES)=0
virtual Handle< Object > Get(Isolate *isolate, DirectHandle< JSObject > holder, InternalIndex entry)=0
virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > Fill(DirectHandle< JSObject > receiver, DirectHandle< Object > obj_value, size_t start, size_t end)=0
virtual ~ElementsAccessor()=default
virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > Shift(DirectHandle< JSArray > receiver)=0
static ElementsAccessor * ForKind(ElementsKind elements_kind)
virtual Maybe< bool > IncludesValue(Isolate *isolate, DirectHandle< JSObject > receiver, DirectHandle< Object > value, size_t start, size_t length)=0
virtual V8_WARN_UNUSED_RESULT Maybe< uint32_t > Push(DirectHandle< JSArray > receiver, BuiltinArguments *args, uint32_t push_size)=0
virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > Pop(DirectHandle< JSArray > receiver)=0
virtual Handle< Object > CompareAndSwapAtomic(Isolate *isolate, DirectHandle< JSObject > holder, InternalIndex entry, Tagged< Object > expected, Tagged< Object > value, SeqCstAccessTag tag)=0
virtual void CopyElements(Isolate *isolate, DirectHandle< FixedArrayBase > source, ElementsKind source_kind, DirectHandle< FixedArrayBase > destination, int size)=0
virtual bool HasAccessors(Tagged< JSObject > holder)=0
virtual size_t GetCapacity(Tagged< JSObject > holder, Tagged< FixedArrayBase > backing_store)=0
virtual Handle< FixedArray > CreateListFromArrayLike(Isolate *isolate, DirectHandle< JSObject > object, uint32_t length)=0
virtual MaybeHandle< FixedArray > PrependElementIndices(Isolate *isolate, DirectHandle< JSObject > object, DirectHandle< FixedArrayBase > backing_store, DirectHandle< FixedArray > keys, GetKeysConversion convert, PropertyFilter filter=ALL_PROPERTIES)=0
virtual void CopyTypedArrayElementsSlice(Tagged< JSTypedArray > source, Tagged< JSTypedArray > destination, size_t start, size_t end)=0
virtual InternalIndex GetEntryForIndex(Isolate *isolate, Tagged< JSObject > holder, Tagged< FixedArrayBase > backing_store, size_t index)=0
virtual V8_WARN_UNUSED_RESULT ExceptionStatus AddElementsToKeyAccumulator(DirectHandle< JSObject > receiver, KeyAccumulator *accumulator, AddKeyConversion convert)=0
virtual V8_WARN_UNUSED_RESULT Maybe< bool > GrowCapacityAndConvert(DirectHandle< JSObject > object, uint32_t capacity)=0
virtual Handle< Object > SwapAtomic(Isolate *isolate, DirectHandle< JSObject > holder, InternalIndex entry, Tagged< Object > value, SeqCstAccessTag tag)=0
static V8_EXPORT_PRIVATE ElementsAccessor ** elements_accessors_
virtual V8_WARN_UNUSED_RESULT ExceptionStatus CollectElementIndices(DirectHandle< JSObject > object, DirectHandle< FixedArrayBase > backing_store, KeyAccumulator *keys)=0
virtual V8_WARN_UNUSED_RESULT Maybe< bool > GrowCapacity(DirectHandle< JSObject > object, uint32_t index)=0
virtual V8_WARN_UNUSED_RESULT Maybe< bool > SetLength(DirectHandle< JSArray > holder, uint32_t new_length)=0
virtual void Delete(DirectHandle< JSObject > holder, InternalIndex entry)=0
static void InitializeOncePerProcess()
virtual void TransitionElementsKind(DirectHandle< JSObject > object, DirectHandle< Map > map)=0
static DirectHandle< JSArray > Concat(Isolate *isolate, BuiltinArguments *args, uint32_t concat_size, uint32_t result_length)
virtual size_t NumberOfElements(Isolate *isolate, Tagged< JSObject > holder)=0
virtual void CopyElements(Isolate *isolate, Tagged< JSObject > source_holder, uint32_t source_start, ElementsKind source_kind, DirectHandle< FixedArrayBase > destination, uint32_t destination_start, int copy_size)=0
ElementsAccessor()=default
ElementsAccessor(const ElementsAccessor &)=delete
virtual Maybe< int64_t > LastIndexOfValue(DirectHandle< JSObject > receiver, DirectHandle< Object > value, size_t start)=0
virtual void Reconfigure(DirectHandle< JSObject > object, DirectHandle< FixedArrayBase > backing_store, InternalIndex entry, DirectHandle< Object > value, PropertyAttributes attributes)=0
virtual Tagged< Object > CopyElements(DirectHandle< JSAny > source, DirectHandle< JSObject > destination, size_t length, size_t offset)=0
virtual V8_WARN_UNUSED_RESULT Maybe< uint32_t > Unshift(DirectHandle< JSArray > receiver, BuiltinArguments *args, uint32_t unshift_size)=0
virtual void Validate(Tagged< JSObject > obj)=0
virtual Handle< Object > GetAtomic(Isolate *isolate, DirectHandle< JSObject > holder, InternalIndex entry, SeqCstAccessTag tag)=0
virtual PropertyDetails GetDetails(Tagged< JSObject > holder, InternalIndex entry)=0
virtual Maybe< bool > CollectValuesOrEntries(Isolate *isolate, DirectHandle< JSObject > object, DirectHandle< FixedArray > values_or_entries, bool get_entries, int *nof_items, PropertyFilter filter=ALL_PROPERTIES)=0
virtual void SetAtomic(DirectHandle< JSObject > holder, InternalIndex entry, Tagged< Object > value, SeqCstAccessTag tag)=0
virtual void Reverse(Tagged< JSObject > receiver)=0
ElementsAccessor & operator=(const ElementsAccessor &)=delete
virtual DirectHandle< NumberDictionary > Normalize(DirectHandle< JSObject > object)=0
virtual bool HasEntry(Tagged< JSObject > holder, InternalIndex entry)=0
virtual V8_WARN_UNUSED_RESULT Maybe< bool > Add(DirectHandle< JSObject > object, uint32_t index, DirectHandle< Object > value, PropertyAttributes attributes, uint32_t new_capacity)=0
virtual void Set(DirectHandle< JSObject > holder, InternalIndex entry, Tagged< Object > value)=0
virtual Maybe< int64_t > IndexOfValue(Isolate *isolate, DirectHandle< JSObject > receiver, DirectHandle< Object > value, size_t start, size_t length)=0
base::Vector< const DirectHandle< Object > > args
InstructionOperand destination
MaybeDirectHandle< Object > ArrayConstructInitializeElements(DirectHandle< JSArray > array, JavaScriptArguments *args)
void CopyTypedArrayElementsToTypedArray(Address raw_source, Address raw_destination, uintptr_t length, uintptr_t offset)
void CopyTypedArrayElementsSlice(Address raw_source, Address raw_destination, uintptr_t start, uintptr_t end)
tsan_relaxed_store_8_bits tsan_relaxed_store_32_bits tsan_seq_cst_store_8_bits tsan_seq_cst_store_32_bits tsan_relaxed_load_32_bits Address raw_context
constexpr int kElementsKindCount
void CopyFastNumberJSArrayElementsToTypedArray(Address raw_context, Address raw_source, Address raw_destination, uintptr_t length, uintptr_t offset)
#define DCHECK_LT(v1, v2)
#define V8_EXPORT_PRIVATE
#define V8_WARN_UNUSED_RESULT