V8 Project
elements.cc File Reference
#include "src/v8.h"
#include "src/arguments.h"
#include "src/conversions.h"
#include "src/elements.h"
#include "src/objects.h"
#include "src/utils.h"
+ Include dependency graph for elements.cc:

Go to the source code of this file.

Classes

class  v8::internal::ElementsKindTraits< Kind >
 
class  v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >
 
class  v8::internal::FastElementsAccessor< FastElementsAccessorSubclass, KindTraits >
 
class  v8::internal::FastSmiOrObjectElementsAccessor< FastElementsAccessorSubclass, KindTraits >
 
class  v8::internal::FastPackedSmiElementsAccessor
 
class  v8::internal::FastHoleySmiElementsAccessor
 
class  v8::internal::FastPackedObjectElementsAccessor
 
class  v8::internal::FastHoleyObjectElementsAccessor
 
class  v8::internal::FastDoubleElementsAccessor< FastElementsAccessorSubclass, KindTraits >
 
class  v8::internal::FastPackedDoubleElementsAccessor
 
class  v8::internal::FastHoleyDoubleElementsAccessor
 
class  v8::internal::TypedElementsAccessor< Kind >
 
class  v8::internal::DictionaryElementsAccessor
 
class  v8::internal::SloppyArgumentsElementsAccessor
 

Namespaces

 v8
 Debugger support for the V8 JavaScript engine.
 
 v8::internal
 

Macros

#define ELEMENTS_LIST(V)
 
#define ELEMENTS_TRAITS(Class, KindParam, Store)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)
 
#define EXTERNAL_ELEMENTS_ACCESSOR(Type, type, TYPE, ctype, size)
 
#define FIXED_ELEMENTS_ACCESSOR(Type, type, TYPE, ctype, size)
 
#define ACCESSOR_ARRAY(Class, Kind, Store)   new Class(#Kind),
 
#define ACCESSOR_DELETE(Class, Kind, Store)   delete elements_accessors_[Kind];
 

Functions

static bool v8::internal::HasKey (Handle< FixedArray > array, Handle< Object > key_handle)
 
static MUST_USE_RESULT MaybeHandle< Object > v8::internal::ThrowArrayLengthRangeError (Isolate *isolate)
 
static void v8::internal::CopyObjectToObjectElements (FixedArrayBase *from_base, ElementsKind from_kind, uint32_t from_start, FixedArrayBase *to_base, ElementsKind to_kind, uint32_t to_start, int raw_copy_size)
 
static void v8::internal::CopyDictionaryToObjectElements (FixedArrayBase *from_base, uint32_t from_start, FixedArrayBase *to_base, ElementsKind to_kind, uint32_t to_start, int raw_copy_size)
 
static void v8::internal::CopyDoubleToObjectElements (FixedArrayBase *from_base, uint32_t from_start, FixedArrayBase *to_base, ElementsKind to_kind, uint32_t to_start, int raw_copy_size)
 
static void v8::internal::CopyDoubleToDoubleElements (FixedArrayBase *from_base, uint32_t from_start, FixedArrayBase *to_base, uint32_t to_start, int raw_copy_size)
 
static void v8::internal::CopySmiToDoubleElements (FixedArrayBase *from_base, uint32_t from_start, FixedArrayBase *to_base, uint32_t to_start, int raw_copy_size)
 
static void v8::internal::CopyPackedSmiToDoubleElements (FixedArrayBase *from_base, uint32_t from_start, FixedArrayBase *to_base, uint32_t to_start, int packed_size, int raw_copy_size)
 
static void v8::internal::CopyObjectToDoubleElements (FixedArrayBase *from_base, uint32_t from_start, FixedArrayBase *to_base, uint32_t to_start, int raw_copy_size)
 
static void v8::internal::CopyDictionaryToDoubleElements (FixedArrayBase *from_base, uint32_t from_start, FixedArrayBase *to_base, uint32_t to_start, int raw_copy_size)
 
static void v8::internal::TraceTopFrame (Isolate *isolate)
 
void v8::internal::CheckArrayAbuse (Handle< JSObject > obj, const char *op, uint32_t key, bool allow_appending)
 
static ElementsKind v8::internal::ElementsKindForArray (FixedArrayBase *array)
 
MaybeHandle< Object > v8::internal::ArrayConstructInitializeElements (Handle< JSArray > array, Arguments *args)
 

Variables

static const int v8::internal::kPackedSizeNotKnown = -1
 

Macro Definition Documentation

◆ ACCESSOR_ARRAY

#define ACCESSOR_ARRAY (   Class,
  Kind,
  Store 
)    new Class(#Kind),

◆ ACCESSOR_DELETE

#define ACCESSOR_DELETE (   Class,
  Kind,
  Store 
)    delete elements_accessors_[Kind];

◆ ELEMENTS_LIST

#define ELEMENTS_LIST (   V)

Definition at line 63 of file elements.cc.

◆ ELEMENTS_TRAITS

#define ELEMENTS_TRAITS (   Class,
  KindParam,
  Store 
)
Value:
template<> class ElementsKindTraits<KindParam> { \
public: /* NOLINT */ \
static const ElementsKind Kind = KindParam; \
typedef Store BackingStore; \
};

Definition at line 113 of file elements.cc.

◆ EXTERNAL_ELEMENTS_ACCESSOR

#define EXTERNAL_ELEMENTS_ACCESSOR (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
typedef TypedElementsAccessor<EXTERNAL_##TYPE##_ELEMENTS> \
External##Type##ElementsAccessor;
TypeImpl< ZoneTypeConfig > Type

Definition at line 1340 of file elements.cc.

◆ FIXED_ELEMENTS_ACCESSOR

#define FIXED_ELEMENTS_ACCESSOR (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
typedef TypedElementsAccessor<TYPE##_ELEMENTS > \
Fixed##Type##ElementsAccessor;

Definition at line 1347 of file elements.cc.

◆ TYPED_ARRAY_CASE [1/3]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ARRAY_TYPE: \
return EXTERNAL_##TYPE##_ELEMENTS; \
case FIXED_##TYPE##_ARRAY_TYPE: \
return TYPE##_ELEMENTS;

◆ TYPED_ARRAY_CASE [2/3]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: \
case TYPE##_ELEMENTS: \
UNREACHABLE();

◆ TYPED_ARRAY_CASE [3/3]

#define TYPED_ARRAY_CASE (   Type,
  type,
  TYPE,
  ctype,
  size 
)
Value:
case EXTERNAL_##TYPE##_ELEMENTS: \
case TYPE##_ELEMENTS: \
UNREACHABLE();