v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::ElementsAccessor Class Referenceabstract

#include <elements.h>

Collaboration diagram for v8::internal::ElementsAccessor:

Public Member Functions

 ElementsAccessor ()=default
 
virtual ~ElementsAccessor ()=default
 
 ElementsAccessor (const ElementsAccessor &)=delete
 
ElementsAccessoroperator= (const ElementsAccessor &)=delete
 
virtual void Validate (Tagged< JSObject > obj)=0
 
virtual bool HasElement (Tagged< JSObject > holder, uint32_t index, Tagged< FixedArrayBase > backing_store, PropertyFilter filter=ALL_PROPERTIES)=0
 
bool HasElement (Tagged< JSObject > holder, uint32_t index, PropertyFilter filter=ALL_PROPERTIES)
 
virtual bool HasEntry (Tagged< JSObject > holder, InternalIndex entry)=0
 
virtual Handle< ObjectGet (Isolate *isolate, DirectHandle< JSObject > holder, InternalIndex entry)=0
 
virtual Handle< ObjectGetAtomic (Isolate *isolate, DirectHandle< JSObject > holder, InternalIndex entry, SeqCstAccessTag tag)=0
 
virtual bool HasAccessors (Tagged< JSObject > holder)=0
 
virtual size_t NumberOfElements (Isolate *isolate, Tagged< JSObject > holder)=0
 
virtual V8_WARN_UNUSED_RESULT Maybe< boolSetLength (DirectHandle< JSArray > holder, uint32_t new_length)=0
 
virtual V8_WARN_UNUSED_RESULT ExceptionStatus CollectElementIndices (DirectHandle< JSObject > object, DirectHandle< FixedArrayBase > backing_store, KeyAccumulator *keys)=0
 
V8_WARN_UNUSED_RESULT ExceptionStatus CollectElementIndices (DirectHandle< JSObject > object, KeyAccumulator *keys)
 
virtual Maybe< boolCollectValuesOrEntries (Isolate *isolate, DirectHandle< JSObject > object, DirectHandle< FixedArray > values_or_entries, bool get_entries, int *nof_items, PropertyFilter filter=ALL_PROPERTIES)=0
 
virtual MaybeHandle< FixedArrayPrependElementIndices (Isolate *isolate, DirectHandle< JSObject > object, DirectHandle< FixedArrayBase > backing_store, DirectHandle< FixedArray > keys, GetKeysConversion convert, PropertyFilter filter=ALL_PROPERTIES)=0
 
MaybeHandle< FixedArrayPrependElementIndices (Isolate *isolate, DirectHandle< JSObject > object, DirectHandle< FixedArray > keys, GetKeysConversion convert, PropertyFilter filter=ALL_PROPERTIES)
 
virtual V8_WARN_UNUSED_RESULT ExceptionStatus AddElementsToKeyAccumulator (DirectHandle< JSObject > receiver, KeyAccumulator *accumulator, AddKeyConversion convert)=0
 
virtual void TransitionElementsKind (DirectHandle< JSObject > object, DirectHandle< Map > map)=0
 
virtual V8_WARN_UNUSED_RESULT Maybe< boolGrowCapacityAndConvert (DirectHandle< JSObject > object, uint32_t capacity)=0
 
virtual V8_WARN_UNUSED_RESULT Maybe< boolGrowCapacity (DirectHandle< JSObject > object, uint32_t index)=0
 
virtual void Set (DirectHandle< JSObject > holder, InternalIndex entry, Tagged< Object > value)=0
 
virtual void SetAtomic (DirectHandle< JSObject > holder, InternalIndex entry, Tagged< Object > value, SeqCstAccessTag tag)=0
 
virtual Handle< ObjectSwapAtomic (Isolate *isolate, DirectHandle< JSObject > holder, InternalIndex entry, Tagged< Object > value, SeqCstAccessTag tag)=0
 
virtual Handle< ObjectCompareAndSwapAtomic (Isolate *isolate, DirectHandle< JSObject > holder, InternalIndex entry, Tagged< Object > expected, Tagged< Object > value, SeqCstAccessTag tag)=0
 
virtual V8_WARN_UNUSED_RESULT Maybe< boolAdd (DirectHandle< JSObject > object, uint32_t index, DirectHandle< Object > value, PropertyAttributes attributes, uint32_t new_capacity)=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 Maybe< uint32_t > Unshift (DirectHandle< JSArray > receiver, BuiltinArguments *args, uint32_t unshift_size)=0
 
virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< ObjectPop (DirectHandle< JSArray > receiver)=0
 
virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< ObjectShift (DirectHandle< JSArray > receiver)=0
 
virtual DirectHandle< NumberDictionaryNormalize (DirectHandle< JSObject > object)=0
 
virtual size_t GetCapacity (Tagged< JSObject > holder, Tagged< FixedArrayBase > backing_store)=0
 
virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< ObjectFill (DirectHandle< JSObject > receiver, DirectHandle< Object > obj_value, size_t start, size_t end)=0
 
virtual Maybe< boolIncludesValue (Isolate *isolate, DirectHandle< JSObject > receiver, DirectHandle< Object > value, size_t start, size_t length)=0
 
virtual Maybe< int64_t > IndexOfValue (Isolate *isolate, DirectHandle< JSObject > receiver, DirectHandle< Object > value, size_t start, size_t length)=0
 
virtual Maybe< int64_t > LastIndexOfValue (DirectHandle< JSObject > receiver, DirectHandle< Object > value, size_t start)=0
 
virtual void Reverse (Tagged< JSObject > receiver)=0
 
virtual void CopyElements (Isolate *isolate, DirectHandle< FixedArrayBase > source, ElementsKind source_kind, DirectHandle< FixedArrayBase > destination, int size)=0
 
virtual Tagged< ObjectCopyElements (DirectHandle< JSAny > source, DirectHandle< JSObject > destination, size_t length, size_t offset)=0
 
virtual Handle< FixedArrayCreateListFromArrayLike (Isolate *isolate, DirectHandle< JSObject > object, uint32_t length)=0
 
virtual void CopyTypedArrayElementsSlice (Tagged< JSTypedArray > source, Tagged< JSTypedArray > destination, size_t start, size_t end)=0
 

Static Public Member Functions

static ElementsAccessorForKind (ElementsKind elements_kind)
 
static void InitializeOncePerProcess ()
 
static void TearDown ()
 
static DirectHandle< JSArrayConcat (Isolate *isolate, BuiltinArguments *args, uint32_t concat_size, uint32_t result_length)
 

Protected Member Functions

virtual InternalIndex GetEntryForIndex (Isolate *isolate, Tagged< JSObject > holder, Tagged< FixedArrayBase > backing_store, size_t index)=0
 
virtual PropertyDetails GetDetails (Tagged< JSObject > holder, InternalIndex entry)=0
 
virtual void Reconfigure (DirectHandle< JSObject > object, DirectHandle< FixedArrayBase > backing_store, InternalIndex entry, DirectHandle< Object > value, PropertyAttributes attributes)=0
 
virtual void Delete (DirectHandle< JSObject > holder, InternalIndex entry)=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
 

Static Private Attributes

static V8_EXPORT_PRIVATE ElementsAccessor ** elements_accessors_ = nullptr
 

Friends

class LookupIterator
 

Detailed Description

Definition at line 21 of file elements.h.

Constructor & Destructor Documentation

◆ ElementsAccessor() [1/2]

v8::internal::ElementsAccessor::ElementsAccessor ( )
default

◆ ~ElementsAccessor()

virtual v8::internal::ElementsAccessor::~ElementsAccessor ( )
virtualdefault

◆ ElementsAccessor() [2/2]

v8::internal::ElementsAccessor::ElementsAccessor ( const ElementsAccessor & )
delete

Member Function Documentation

◆ Add()

virtual V8_WARN_UNUSED_RESULT Maybe< bool > v8::internal::ElementsAccessor::Add ( DirectHandle< JSObject > object,
uint32_t index,
DirectHandle< Object > value,
PropertyAttributes attributes,
uint32_t new_capacity )
pure virtual
Here is the caller graph for this function:

◆ AddElementsToKeyAccumulator()

virtual V8_WARN_UNUSED_RESULT ExceptionStatus v8::internal::ElementsAccessor::AddElementsToKeyAccumulator ( DirectHandle< JSObject > receiver,
KeyAccumulator * accumulator,
AddKeyConversion convert )
pure virtual
Here is the caller graph for this function:

◆ CollectElementIndices() [1/2]

virtual V8_WARN_UNUSED_RESULT ExceptionStatus v8::internal::ElementsAccessor::CollectElementIndices ( DirectHandle< JSObject > object,
DirectHandle< FixedArrayBase > backing_store,
KeyAccumulator * keys )
pure virtual
Here is the caller graph for this function:

◆ CollectElementIndices() [2/2]

V8_WARN_UNUSED_RESULT ExceptionStatus v8::internal::ElementsAccessor::CollectElementIndices ( DirectHandle< JSObject > object,
KeyAccumulator * keys )
inline

Definition at line 19 of file elements-inl.h.

Here is the call graph for this function:

◆ CollectValuesOrEntries()

virtual Maybe< bool > v8::internal::ElementsAccessor::CollectValuesOrEntries ( Isolate * isolate,
DirectHandle< JSObject > object,
DirectHandle< FixedArray > values_or_entries,
bool get_entries,
int * nof_items,
PropertyFilter filter = ALL_PROPERTIES )
pure virtual

◆ CompareAndSwapAtomic()

virtual Handle< Object > v8::internal::ElementsAccessor::CompareAndSwapAtomic ( Isolate * isolate,
DirectHandle< JSObject > holder,
InternalIndex entry,
Tagged< Object > expected,
Tagged< Object > value,
SeqCstAccessTag tag )
pure virtual
Here is the caller graph for this function:

◆ Concat()

DirectHandle< JSArray > v8::internal::ElementsAccessor::Concat ( Isolate * isolate,
BuiltinArguments * args,
uint32_t concat_size,
uint32_t result_length )
static

Definition at line 5765 of file elements.cc.

Here is the call graph for this function:

◆ CopyElements() [1/3]

virtual Tagged< Object > v8::internal::ElementsAccessor::CopyElements ( DirectHandle< JSAny > source,
DirectHandle< JSObject > destination,
size_t length,
size_t offset )
pure virtual

◆ CopyElements() [2/3]

virtual void v8::internal::ElementsAccessor::CopyElements ( Isolate * isolate,
DirectHandle< FixedArrayBase > source,
ElementsKind source_kind,
DirectHandle< FixedArrayBase > destination,
int size )
pure virtual
Here is the caller graph for this function:

◆ CopyElements() [3/3]

virtual void v8::internal::ElementsAccessor::CopyElements ( Isolate * isolate,
Tagged< JSObject > source_holder,
uint32_t source_start,
ElementsKind source_kind,
DirectHandle< FixedArrayBase > destination,
uint32_t destination_start,
int copy_size )
protectedpure virtual

◆ CopyTypedArrayElementsSlice()

virtual void v8::internal::ElementsAccessor::CopyTypedArrayElementsSlice ( Tagged< JSTypedArray > source,
Tagged< JSTypedArray > destination,
size_t start,
size_t end )
pure virtual

◆ CreateListFromArrayLike()

virtual Handle< FixedArray > v8::internal::ElementsAccessor::CreateListFromArrayLike ( Isolate * isolate,
DirectHandle< JSObject > object,
uint32_t length )
pure virtual

◆ Delete()

virtual void v8::internal::ElementsAccessor::Delete ( DirectHandle< JSObject > holder,
InternalIndex entry )
protectedpure virtual
Here is the caller graph for this function:

◆ Fill()

virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > v8::internal::ElementsAccessor::Fill ( DirectHandle< JSObject > receiver,
DirectHandle< Object > obj_value,
size_t start,
size_t end )
pure virtual

◆ ForKind()

static ElementsAccessor * v8::internal::ElementsAccessor::ForKind ( ElementsKind elements_kind)
inlinestatic

Definition at line 29 of file elements.h.

Here is the caller graph for this function:

◆ Get()

virtual Handle< Object > v8::internal::ElementsAccessor::Get ( Isolate * isolate,
DirectHandle< JSObject > holder,
InternalIndex entry )
pure virtual
Here is the caller graph for this function:

◆ GetAtomic()

virtual Handle< Object > v8::internal::ElementsAccessor::GetAtomic ( Isolate * isolate,
DirectHandle< JSObject > holder,
InternalIndex entry,
SeqCstAccessTag tag )
pure virtual
Here is the caller graph for this function:

◆ GetCapacity()

virtual size_t v8::internal::ElementsAccessor::GetCapacity ( Tagged< JSObject > holder,
Tagged< FixedArrayBase > backing_store )
pure virtual
Here is the caller graph for this function:

◆ GetDetails()

virtual PropertyDetails v8::internal::ElementsAccessor::GetDetails ( Tagged< JSObject > holder,
InternalIndex entry )
protectedpure virtual
Here is the caller graph for this function:

◆ GetEntryForIndex()

virtual InternalIndex v8::internal::ElementsAccessor::GetEntryForIndex ( Isolate * isolate,
Tagged< JSObject > holder,
Tagged< FixedArrayBase > backing_store,
size_t index )
protectedpure virtual
Here is the caller graph for this function:

◆ GrowCapacity()

virtual V8_WARN_UNUSED_RESULT Maybe< bool > v8::internal::ElementsAccessor::GrowCapacity ( DirectHandle< JSObject > object,
uint32_t index )
pure virtual

◆ GrowCapacityAndConvert()

virtual V8_WARN_UNUSED_RESULT Maybe< bool > v8::internal::ElementsAccessor::GrowCapacityAndConvert ( DirectHandle< JSObject > object,
uint32_t capacity )
pure virtual

◆ HasAccessors()

virtual bool v8::internal::ElementsAccessor::HasAccessors ( Tagged< JSObject > holder)
pure virtual

◆ HasElement() [1/2]

bool v8::internal::ElementsAccessor::HasElement ( Tagged< JSObject > holder,
uint32_t index,
PropertyFilter filter = ALL_PROPERTIES )
inline

Definition at line 34 of file elements-inl.h.

Here is the call graph for this function:

◆ HasElement() [2/2]

virtual bool v8::internal::ElementsAccessor::HasElement ( Tagged< JSObject > holder,
uint32_t index,
Tagged< FixedArrayBase > backing_store,
PropertyFilter filter = ALL_PROPERTIES )
pure virtual
Here is the caller graph for this function:

◆ HasEntry()

virtual bool v8::internal::ElementsAccessor::HasEntry ( Tagged< JSObject > holder,
InternalIndex entry )
pure virtual
Here is the caller graph for this function:

◆ IncludesValue()

virtual Maybe< bool > v8::internal::ElementsAccessor::IncludesValue ( Isolate * isolate,
DirectHandle< JSObject > receiver,
DirectHandle< Object > value,
size_t start,
size_t length )
pure virtual
Here is the caller graph for this function:

◆ IndexOfValue()

virtual Maybe< int64_t > v8::internal::ElementsAccessor::IndexOfValue ( Isolate * isolate,
DirectHandle< JSObject > receiver,
DirectHandle< Object > value,
size_t start,
size_t length )
pure virtual
Here is the caller graph for this function:

◆ InitializeOncePerProcess()

void v8::internal::ElementsAccessor::InitializeOncePerProcess ( )
static

Definition at line 5728 of file elements.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LastIndexOfValue()

virtual Maybe< int64_t > v8::internal::ElementsAccessor::LastIndexOfValue ( DirectHandle< JSObject > receiver,
DirectHandle< Object > value,
size_t start )
pure virtual
Here is the caller graph for this function:

◆ Normalize()

virtual DirectHandle< NumberDictionary > v8::internal::ElementsAccessor::Normalize ( DirectHandle< JSObject > object)
pure virtual

◆ NumberOfElements()

virtual size_t v8::internal::ElementsAccessor::NumberOfElements ( Isolate * isolate,
Tagged< JSObject > holder )
pure virtual

◆ operator=()

ElementsAccessor & v8::internal::ElementsAccessor::operator= ( const ElementsAccessor & )
delete

◆ Pop()

virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > v8::internal::ElementsAccessor::Pop ( DirectHandle< JSArray > receiver)
pure virtual

◆ PrependElementIndices() [1/2]

MaybeHandle< FixedArray > v8::internal::ElementsAccessor::PrependElementIndices ( Isolate * isolate,
DirectHandle< JSObject > object,
DirectHandle< FixedArray > keys,
GetKeysConversion convert,
PropertyFilter filter = ALL_PROPERTIES )
inline

Definition at line 25 of file elements-inl.h.

Here is the call graph for this function:

◆ PrependElementIndices() [2/2]

virtual MaybeHandle< FixedArray > v8::internal::ElementsAccessor::PrependElementIndices ( Isolate * isolate,
DirectHandle< JSObject > object,
DirectHandle< FixedArrayBase > backing_store,
DirectHandle< FixedArray > keys,
GetKeysConversion convert,
PropertyFilter filter = ALL_PROPERTIES )
pure virtual
Here is the caller graph for this function:

◆ Push()

virtual V8_WARN_UNUSED_RESULT Maybe< uint32_t > v8::internal::ElementsAccessor::Push ( DirectHandle< JSArray > receiver,
BuiltinArguments * args,
uint32_t push_size )
pure virtual
Here is the caller graph for this function:

◆ Reconfigure()

virtual void v8::internal::ElementsAccessor::Reconfigure ( DirectHandle< JSObject > object,
DirectHandle< FixedArrayBase > backing_store,
InternalIndex entry,
DirectHandle< Object > value,
PropertyAttributes attributes )
protectedpure virtual

◆ Reverse()

virtual void v8::internal::ElementsAccessor::Reverse ( Tagged< JSObject > receiver)
pure virtual
Here is the caller graph for this function:

◆ Set()

virtual void v8::internal::ElementsAccessor::Set ( DirectHandle< JSObject > holder,
InternalIndex entry,
Tagged< Object > value )
pure virtual
Here is the caller graph for this function:

◆ SetAtomic()

virtual void v8::internal::ElementsAccessor::SetAtomic ( DirectHandle< JSObject > holder,
InternalIndex entry,
Tagged< Object > value,
SeqCstAccessTag tag )
pure virtual
Here is the caller graph for this function:

◆ SetLength()

virtual V8_WARN_UNUSED_RESULT Maybe< bool > v8::internal::ElementsAccessor::SetLength ( DirectHandle< JSArray > holder,
uint32_t new_length )
pure virtual

◆ Shift()

virtual V8_WARN_UNUSED_RESULT MaybeDirectHandle< Object > v8::internal::ElementsAccessor::Shift ( DirectHandle< JSArray > receiver)
pure virtual

◆ SwapAtomic()

virtual Handle< Object > v8::internal::ElementsAccessor::SwapAtomic ( Isolate * isolate,
DirectHandle< JSObject > holder,
InternalIndex entry,
Tagged< Object > value,
SeqCstAccessTag tag )
pure virtual
Here is the caller graph for this function:

◆ TearDown()

void v8::internal::ElementsAccessor::TearDown ( )
static

Definition at line 5757 of file elements.cc.

Here is the caller graph for this function:

◆ TransitionElementsKind()

virtual void v8::internal::ElementsAccessor::TransitionElementsKind ( DirectHandle< JSObject > object,
DirectHandle< Map > map )
pure virtual
Here is the caller graph for this function:

◆ Unshift()

virtual V8_WARN_UNUSED_RESULT Maybe< uint32_t > v8::internal::ElementsAccessor::Unshift ( DirectHandle< JSArray > receiver,
BuiltinArguments * args,
uint32_t unshift_size )
pure virtual
Here is the caller graph for this function:

◆ Validate()

virtual void v8::internal::ElementsAccessor::Validate ( Tagged< JSObject > obj)
pure virtual

Friends And Related Symbol Documentation

◆ LookupIterator

friend class LookupIterator
friend

Definition at line 213 of file elements.h.

Member Data Documentation

◆ elements_accessors_

ElementsAccessor ** v8::internal::ElementsAccessor::elements_accessors_ = nullptr
staticprivate

Definition at line 248 of file elements.h.


The documentation for this class was generated from the following files: