v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ElementsAccessor Class Referenceabstract

#include <elements.h>

Inheritance diagram for ElementsAccessor:

Public Member Functions

 ElementsAccessor (const char *name)
 
virtual ~ElementsAccessor ()
 
virtual ElementsKind kind () const =0
 
const char * name () const
 
virtual void Validate (JSObject *obj)=0
 
virtual bool HasElement (Object *receiver, JSObject *holder, uint32_t key, FixedArrayBase *backing_store=NULL)=0
 
virtual MUST_USE_RESULT Handle
< Object
Get (Handle< Object > receiver, Handle< JSObject > holder, uint32_t key, Handle< FixedArrayBase > backing_store=Handle< FixedArrayBase >::null())=0
 
virtual MUST_USE_RESULT
MaybeObject * 
Get (Object *receiver, JSObject *holder, uint32_t key, FixedArrayBase *backing_store=NULL)=0
 
virtual MUST_USE_RESULT
PropertyAttributes 
GetAttributes (Object *receiver, JSObject *holder, uint32_t key, FixedArrayBase *backing_store=NULL)=0
 
virtual MUST_USE_RESULT
PropertyType 
GetType (Object *receiver, JSObject *holder, uint32_t key, FixedArrayBase *backing_store=NULL)=0
 
virtual MUST_USE_RESULT
AccessorPair
GetAccessorPair (Object *receiver, JSObject *holder, uint32_t key, FixedArrayBase *backing_store=NULL)=0
 
virtual MUST_USE_RESULT Handle
< Object
SetLength (Handle< JSArray > holder, Handle< Object > new_length)=0
 
virtual void SetCapacityAndLength (Handle< JSArray > array, int capacity, int length)=0
 
virtual MUST_USE_RESULT Handle
< Object
Delete (Handle< JSObject > holder, uint32_t key, JSReceiver::DeleteMode mode)=0
 
virtual void CopyElements (Handle< JSObject > source_holder, uint32_t source_start, ElementsKind source_kind, Handle< FixedArrayBase > destination, uint32_t destination_start, int copy_size, Handle< FixedArrayBase > source=Handle< FixedArrayBase >::null())=0
 
void CopyElements (Handle< JSObject > from_holder, Handle< FixedArrayBase > to, ElementsKind from_kind, Handle< FixedArrayBase > from=Handle< FixedArrayBase >::null())
 
virtual MUST_USE_RESULT
MaybeObject * 
AddElementsToFixedArray (Object *receiver, JSObject *holder, FixedArray *to, FixedArrayBase *from=NULL)=0
 

Static Public Member Functions

static ElementsAccessorForKind (ElementsKind elements_kind)
 
static ElementsAccessorForArray (FixedArrayBase *array)
 
static void InitializeOncePerProcess ()
 
static void TearDown ()
 

Static Public Attributes

static const int kCopyToEnd = -1
 
static const int kCopyToEndAndInitializeToHole = -2
 

Protected Member Functions

virtual uint32_t GetCapacity (FixedArrayBase *backing_store)=0
 
virtual uint32_t GetKeyForIndex (FixedArrayBase *backing_store, uint32_t index)=0
 

Friends

class SloppyArgumentsElementsAccessor
 

Detailed Description

Definition at line 41 of file elements.h.

Constructor & Destructor Documentation

ElementsAccessor ( const char *  name)
inlineexplicit

Definition at line 43 of file elements.h.

virtual ~ElementsAccessor ( )
inlinevirtual

Definition at line 44 of file elements.h.

Member Function Documentation

void CopyElements ( Handle< JSObject from_holder,
Handle< FixedArrayBase to,
ElementsKind  from_kind,
Handle< FixedArrayBase from = Handle<FixedArrayBase>::null() 
)
inline
virtual MUST_USE_RESULT Handle<Object> Delete ( Handle< JSObject holder,
uint32_t  key,
JSReceiver::DeleteMode  mode 
)
pure virtual

Implemented in SloppyArgumentsElementsAccessor, DictionaryElementsAccessor, TypedElementsAccessor< Kind >, FastElementsAccessor< FastElementsAccessorSubclass, KindTraits, ElementSize >, FastElementsAccessor< FastPackedDoubleElementsAccessor, ElementsKindTraits< FAST_DOUBLE_ELEMENTS >, kDoubleSize >, FastElementsAccessor< FastPackedObjectElementsAccessor, ElementsKindTraits< FAST_ELEMENTS >, kPointerSize >, FastElementsAccessor< FastHoleyObjectElementsAccessor, ElementsKindTraits< FAST_HOLEY_ELEMENTS >, kPointerSize >, FastElementsAccessor< FastElementsAccessorSubclass, KindTraits, kPointerSize >, FastElementsAccessor< FastHoleyDoubleElementsAccessor, ElementsKindTraits< FAST_HOLEY_DOUBLE_ELEMENTS >, kDoubleSize >, FastElementsAccessor< FastHoleySmiElementsAccessor, ElementsKindTraits< FAST_HOLEY_SMI_ELEMENTS >, kPointerSize >, FastElementsAccessor< FastElementsAccessorSubclass, KindTraits, kDoubleSize >, FastElementsAccessor< FastPackedSmiElementsAccessor, ElementsKindTraits< FAST_SMI_ELEMENTS >, kPointerSize >, ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, ElementsAccessorBase< FastPackedDoubleElementsAccessor, ElementsKindTraits< FAST_DOUBLE_ELEMENTS > >, ElementsAccessorBase< FastHoleyDoubleElementsAccessor, ElementsKindTraits< FAST_HOLEY_DOUBLE_ELEMENTS > >, ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, ElementsAccessorBase< FastHoleySmiElementsAccessor, ElementsKindTraits< FAST_HOLEY_SMI_ELEMENTS > >, ElementsAccessorBase< FastPackedObjectElementsAccessor, ElementsKindTraits< FAST_ELEMENTS > >, ElementsAccessorBase< FastHoleyObjectElementsAccessor, ElementsKindTraits< FAST_HOLEY_ELEMENTS > >, ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >, and ElementsAccessorBase< FastPackedSmiElementsAccessor, ElementsKindTraits< FAST_SMI_ELEMENTS > >.

void InitializeOncePerProcess ( )
static
const char* name ( ) const
inline
void TearDown ( )
static

Definition at line 1875 of file elements.cc.

References ACCESSOR_DELETE, ELEMENTS_LIST, and v8::internal::NULL.

Referenced by V8::TearDown().

Friends And Related Function Documentation

friend class SloppyArgumentsElementsAccessor
friend

Definition at line 189 of file elements.h.

Field Documentation

const int kCopyToEnd = -1
static

Definition at line 142 of file elements.h.

const int kCopyToEndAndInitializeToHole = -2
static

Definition at line 147 of file elements.h.

Referenced by v8::internal::BUILTIN(), and ElementsAccessor::CopyElements().


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