V8 Project
|
#include <elements.h>
Static Public Member Functions | |
static ElementsAccessor * | ForKind (ElementsKind elements_kind) |
static ElementsAccessor * | ForArray (Handle< 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 (Handle< FixedArrayBase > backing_store)=0 |
virtual uint32_t | GetKeyForIndex (Handle< FixedArrayBase > backing_store, uint32_t index)=0 |
Private Member Functions | |
DISALLOW_COPY_AND_ASSIGN (ElementsAccessor) | |
Private Attributes | |
const char * | name_ |
Static Private Attributes | |
static ElementsAccessor ** | elements_accessors_ = NULL |
Friends | |
class | SloppyArgumentsElementsAccessor |
Definition at line 18 of file elements.h.
|
inlineexplicit |
Definition at line 20 of file elements.h.
|
inlinevirtual |
Definition at line 21 of file elements.h.
|
inline |
Definition at line 175 of file elements.h.
References AddElementsToFixedArray(), v8::internal::handle(), and to().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by AddElementsToFixedArray(), v8::internal::FixedArray::AddKeysFromArrayLike(), and v8::internal::FixedArray::UnionOfKeys().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by v8::internal::BUILTIN(), CopyElements(), v8::internal::JSObject::SetFastDoubleElementsCapacityAndLength(), and v8::internal::JSObject::SetFastElementsCapacityAndLength().
|
inline |
Definition at line 161 of file elements.h.
References CopyElements(), kCopyToEndAndInitializeToHole, and to().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >, v8::internal::SloppyArgumentsElementsAccessor, v8::internal::DictionaryElementsAccessor, v8::internal::TypedElementsAccessor< Kind >, and v8::internal::FastElementsAccessor< FastElementsAccessorSubclass, KindTraits >.
|
private |
|
static |
Definition at line 1731 of file elements.cc.
References elements_accessors_, and v8::internal::ElementsKindForArray().
Referenced by v8::internal::SloppyArgumentsElementsAccessor::GetAccessorPairImpl(), v8::internal::SloppyArgumentsElementsAccessor::GetAttributesImpl(), v8::internal::SloppyArgumentsElementsAccessor::GetCapacityImpl(), v8::internal::SloppyArgumentsElementsAccessor::GetImpl(), v8::internal::SloppyArgumentsElementsAccessor::HasElementImpl(), and v8::internal::FixedArray::UnionOfKeys().
|
inlinestatic |
Definition at line 184 of file elements.h.
References DCHECK, elements_accessors_, and v8::internal::kElementsKindCount.
Referenced by v8::internal::BUILTIN(), v8::internal::ElementsKindToString(), v8::internal::JSObject::GetElementsAccessor(), v8::internal::JSObject::SetFastDoubleElementsCapacityAndLength(), and v8::internal::JSObject::SetFastElementsCapacityAndLength().
|
inline |
Definition at line 59 of file elements.h.
References Get(), and v8::internal::handle().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by v8::internal::BUILTIN(), Get(), v8::internal::JSObject::GetElementWithInterceptor(), and v8::internal::SloppyArgumentsElementsAccessor::HasElementImpl().
|
inline |
Definition at line 95 of file elements.h.
References GetAccessorPair(), and v8::internal::handle().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by GetAccessorPair(), and v8::internal::SloppyArgumentsElementsAccessor::GetAccessorPairImpl().
|
inline |
Definition at line 77 of file elements.h.
References GetAttributes(), and v8::internal::handle().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by GetAttributes(), and v8::internal::SloppyArgumentsElementsAccessor::GetAttributesImpl().
|
protectedpure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
|
protectedpure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
|
inline |
Definition at line 41 of file elements.h.
References v8::internal::handle(), and HasElement().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by v8::internal::BUILTIN(), v8::internal::CollectElementIndices(), HasElement(), and v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 1736 of file elements.cc.
References ACCESSOR_ARRAY, elements_accessors_, ELEMENTS_LIST, v8::internal::kElementsKindCount, and v8::internal::STATIC_ASSERT().
Referenced by v8::internal::V8::InitializeOncePerProcessImpl().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
|
inline |
Definition at line 24 of file elements.h.
References name_.
Referenced by v8::internal::DictionaryElementsAccessor::DeleteCommon(), and v8::internal::ElementsKindToString().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by v8::internal::JSArray::Expand().
|
pure virtual |
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by v8::internal::BUILTIN().
|
static |
Definition at line 1750 of file elements.cc.
References ACCESSOR_DELETE, elements_accessors_, ELEMENTS_LIST, and NULL.
Referenced by v8::internal::V8::TearDown().
Implemented in v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >, v8::internal::ElementsAccessorBase< TypedElementsAccessor< Kind >, ElementsKindTraits< Kind > >, v8::internal::ElementsAccessorBase< FastElementsAccessorSubclass, KindTraits >, v8::internal::ElementsAccessorBase< SloppyArgumentsElementsAccessor, ElementsKindTraits< SLOPPY_ARGUMENTS_ELEMENTS > >, and v8::internal::ElementsAccessorBase< DictionaryElementsAccessor, ElementsKindTraits< DICTIONARY_ELEMENTS > >.
Referenced by v8::internal::JSObject::ValidateElements().
|
friend |
Definition at line 195 of file elements.h.
|
staticprivate |
Definition at line 211 of file elements.h.
Referenced by ForArray(), ForKind(), InitializeOncePerProcess(), and TearDown().
|
static |
Definition at line 130 of file elements.h.
Referenced by v8::internal::CopyDictionaryToDoubleElements(), v8::internal::CopyDictionaryToObjectElements(), v8::internal::CopyDoubleToDoubleElements(), v8::internal::CopyDoubleToObjectElements(), v8::internal::CopyObjectToDoubleElements(), v8::internal::CopyObjectToObjectElements(), v8::internal::CopyPackedSmiToDoubleElements(), and v8::internal::CopySmiToDoubleElements().
|
static |
Definition at line 135 of file elements.h.
Referenced by v8::internal::BUILTIN(), v8::internal::CopyDictionaryToDoubleElements(), v8::internal::CopyDictionaryToObjectElements(), v8::internal::CopyDoubleToDoubleElements(), v8::internal::CopyDoubleToObjectElements(), CopyElements(), v8::internal::CopyObjectToDoubleElements(), v8::internal::CopyObjectToObjectElements(), v8::internal::CopyPackedSmiToDoubleElements(), and v8::internal::CopySmiToDoubleElements().
|
private |
Definition at line 212 of file elements.h.
Referenced by name().