V8 Project
v8::internal::TypedElementsAccessor< Kind > Class Template Reference
+ Inheritance diagram for v8::internal::TypedElementsAccessor< Kind >:
+ Collaboration diagram for v8::internal::TypedElementsAccessor< Kind >:

Public Member Functions

 TypedElementsAccessor (const char *name)
 
- Public Member Functions inherited from v8::internal::ElementsAccessor
 ElementsAccessor (const char *name)
 
virtual ~ElementsAccessor ()
 
const char * name () const
 
bool HasElement (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key)
 
MUST_USE_RESULT MaybeHandle< ObjectGet (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key)
 
MUST_USE_RESULT PropertyAttributes GetAttributes (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key)
 
MUST_USE_RESULT MaybeHandle< AccessorPairGetAccessorPair (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key)
 
void CopyElements (Handle< JSObject > from_holder, Handle< FixedArrayBase > to, ElementsKind from_kind)
 
MUST_USE_RESULT MaybeHandle< FixedArrayAddElementsToFixedArray (Handle< Object > receiver, Handle< JSObject > holder, Handle< FixedArray > to)
 

Protected Types

typedef ElementsKindTraits< Kind >::BackingStore BackingStore
 
typedef TypedElementsAccessor< Kind > AccessorClass
 
- Protected Types inherited from v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >
typedef ElementsKindTraits< Kind > ElementsTraits
 
typedef ElementsTraitsParam::BackingStore BackingStore
 

Protected Member Functions

virtual MUST_USE_RESULT MaybeHandle< ObjectDelete (Handle< JSObject > obj, uint32_t key, JSReceiver::DeleteMode mode) FINAL OVERRIDE
 
- Protected Member Functions inherited from v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >
 ElementsAccessorBase (const char *name)
 
virtual ElementsKind kind () const FINAL OVERRIDE
 
virtual void Validate (Handle< JSObject > holder) FINAL OVERRIDE
 
virtual bool HasElement (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key, Handle< FixedArrayBase > backing_store) FINAL OVERRIDE
 
virtual MUST_USE_RESULT MaybeHandle< ObjectGet (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key, Handle< FixedArrayBase > backing_store) FINAL OVERRIDE
 
virtual MUST_USE_RESULT PropertyAttributes GetAttributes (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key, Handle< FixedArrayBase > backing_store) FINAL OVERRIDE
 
virtual MUST_USE_RESULT MaybeHandle< AccessorPairGetAccessorPair (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key, Handle< FixedArrayBase > backing_store) FINAL OVERRIDE
 
virtual MUST_USE_RESULT MaybeHandle< ObjectSetLength (Handle< JSArray > array, Handle< Object > length) FINAL OVERRIDE
 
virtual void SetCapacityAndLength (Handle< JSArray > array, int capacity, int length) FINAL OVERRIDE
 
virtual void CopyElements (Handle< FixedArrayBase > from, uint32_t from_start, ElementsKind from_kind, Handle< FixedArrayBase > to, uint32_t to_start, int copy_size) FINAL OVERRIDE
 
virtual void CopyElements (JSObject *from_holder, uint32_t from_start, ElementsKind from_kind, Handle< FixedArrayBase > to, uint32_t to_start, int copy_size) FINAL OVERRIDE
 
virtual MaybeHandle< FixedArrayAddElementsToFixedArray (Handle< Object > receiver, Handle< JSObject > holder, Handle< FixedArray > to, Handle< FixedArrayBase > from) FINAL OVERRIDE
 
virtual uint32_t GetCapacity (Handle< FixedArrayBase > backing_store) FINAL OVERRIDE
 
virtual uint32_t GetKeyForIndex (Handle< FixedArrayBase > backing_store, uint32_t index) FINAL OVERRIDE
 

Static Protected Member Functions

static MUST_USE_RESULT MaybeHandle< ObjectGetImpl (Handle< Object > receiver, Handle< JSObject > obj, uint32_t key, Handle< FixedArrayBase > backing_store)
 
static MUST_USE_RESULT PropertyAttributes GetAttributesImpl (Handle< Object > receiver, Handle< JSObject > obj, uint32_t key, Handle< FixedArrayBase > backing_store)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetLengthImpl (Handle< JSObject > obj, Handle< Object > length, Handle< FixedArrayBase > backing_store)
 
static bool HasElementImpl (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key, Handle< FixedArrayBase > backing_store)
 
- Static Protected Member Functions inherited from v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >
static void ValidateContents (Handle< JSObject > holder, int length)
 
static void ValidateImpl (Handle< JSObject > holder)
 
static bool HasElementImpl (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key, Handle< FixedArrayBase > backing_store)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetImpl (Handle< Object > receiver, Handle< JSObject > obj, uint32_t key, Handle< FixedArrayBase > backing_store)
 
static MUST_USE_RESULT PropertyAttributes GetAttributesImpl (Handle< Object > receiver, Handle< JSObject > obj, uint32_t key, Handle< FixedArrayBase > backing_store)
 
static MUST_USE_RESULT MaybeHandle< AccessorPairGetAccessorPairImpl (Handle< Object > receiver, Handle< JSObject > obj, uint32_t key, Handle< FixedArrayBase > backing_store)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetLengthImpl (Handle< JSObject > obj, Handle< Object > length, Handle< FixedArrayBase > backing_store)
 
static void SetFastElementsCapacityAndLength (Handle< JSObject > obj, int capacity, int length)
 
static void CopyElementsImpl (FixedArrayBase *from, uint32_t from_start, FixedArrayBase *to, ElementsKind from_kind, uint32_t to_start, int packed_size, int copy_size)
 
static uint32_t GetCapacityImpl (Handle< FixedArrayBase > backing_store)
 
static uint32_t GetKeyForIndexImpl (Handle< FixedArrayBase > backing_store, uint32_t index)
 

Friends

class ElementsAccessorBase< AccessorClass, ElementsKindTraits< Kind > >
 

Additional Inherited Members

- Static Public Member Functions inherited from v8::internal::ElementsAccessor
static ElementsAccessorForKind (ElementsKind elements_kind)
 
static ElementsAccessorForArray (Handle< FixedArrayBase > array)
 
static void InitializeOncePerProcess ()
 
static void TearDown ()
 
- Static Public Attributes inherited from v8::internal::ElementsAccessor
static const int kCopyToEnd = -1
 
static const int kCopyToEndAndInitializeToHole = -2
 

Detailed Description

template<ElementsKind Kind>
class v8::internal::TypedElementsAccessor< Kind >

Definition at line 1274 of file elements.cc.

Member Typedef Documentation

◆ AccessorClass

template<ElementsKind Kind>
typedef TypedElementsAccessor<Kind> v8::internal::TypedElementsAccessor< Kind >::AccessorClass
protected

Definition at line 1284 of file elements.cc.

◆ BackingStore

template<ElementsKind Kind>
typedef ElementsKindTraits<Kind>::BackingStore v8::internal::TypedElementsAccessor< Kind >::BackingStore
protected

Definition at line 1283 of file elements.cc.

Constructor & Destructor Documentation

◆ TypedElementsAccessor()

template<ElementsKind Kind>
v8::internal::TypedElementsAccessor< Kind >::TypedElementsAccessor ( const char *  name)
inlineexplicit

Definition at line 1278 of file elements.cc.

1280  ElementsKindTraits<Kind> >(name) {}
const char * name() const
Definition: elements.h:24
TypedElementsAccessor< Kind > AccessorClass
Definition: elements.cc:1284

Member Function Documentation

◆ Delete()

template<ElementsKind Kind>
virtual MUST_USE_RESULT MaybeHandle<Object> v8::internal::TypedElementsAccessor< Kind >::Delete ( Handle< JSObject obj,
uint32_t  key,
JSReceiver::DeleteMode  mode 
)
inlineprotectedvirtual

Implements v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >.

Definition at line 1320 of file elements.cc.

1323  {
1324  // External arrays always ignore deletes.
1325  return obj->GetIsolate()->factory()->true_value();
1326  }

◆ GetAttributesImpl()

template<ElementsKind Kind>
static MUST_USE_RESULT PropertyAttributes v8::internal::TypedElementsAccessor< Kind >::GetAttributesImpl ( Handle< Object receiver,
Handle< JSObject obj,
uint32_t  key,
Handle< FixedArrayBase backing_store 
)
inlinestaticprotected

Definition at line 1301 of file elements.cc.

1305  {
1306  return
1307  key < AccessorClass::GetCapacityImpl(backing_store)
1308  ? NONE : ABSENT;
1309  }
@ ABSENT
@ NONE

References ABSENT, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >::GetCapacityImpl(), and NONE.

+ Here is the call graph for this function:

◆ GetImpl()

template<ElementsKind Kind>
static MUST_USE_RESULT MaybeHandle<Object> v8::internal::TypedElementsAccessor< Kind >::GetImpl ( Handle< Object receiver,
Handle< JSObject obj,
uint32_t  key,
Handle< FixedArrayBase backing_store 
)
inlinestaticprotected

Definition at line 1289 of file elements.cc.

1293  {
1294  if (key < AccessorClass::GetCapacityImpl(backing_store)) {
1295  return BackingStore::get(Handle<BackingStore>::cast(backing_store), key);
1296  } else {
1297  return backing_store->GetIsolate()->factory()->undefined_value();
1298  }
1299  }
static Handle< T > cast(Handle< S > that)
Definition: handles.h:116

References v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >::GetCapacityImpl().

+ Here is the call graph for this function:

◆ HasElementImpl()

template<ElementsKind Kind>
static bool v8::internal::TypedElementsAccessor< Kind >::HasElementImpl ( Handle< Object receiver,
Handle< JSObject holder,
uint32_t  key,
Handle< FixedArrayBase backing_store 
)
inlinestaticprotected

Definition at line 1328 of file elements.cc.

1331  {
1332  uint32_t capacity =
1333  AccessorClass::GetCapacityImpl(backing_store);
1334  return key < capacity;
1335  }

References v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >::GetCapacityImpl().

+ Here is the call graph for this function:

◆ SetLengthImpl()

template<ElementsKind Kind>
static MUST_USE_RESULT MaybeHandle<Object> v8::internal::TypedElementsAccessor< Kind >::SetLengthImpl ( Handle< JSObject obj,
Handle< Object length,
Handle< FixedArrayBase backing_store 
)
inlinestaticprotected

Definition at line 1311 of file elements.cc.

1314  {
1315  // External arrays do not support changing their length.
1316  UNREACHABLE();
1317  return obj;
1318  }
#define UNREACHABLE()
Definition: logging.h:30

References UNREACHABLE.

Friends And Related Function Documentation

◆ ElementsAccessorBase< AccessorClass, ElementsKindTraits< Kind > >

template<ElementsKind Kind>
friend class ElementsAccessorBase< AccessorClass, ElementsKindTraits< Kind > >
friend

Definition at line 1284 of file elements.cc.


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