v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
elements-kind.h File Reference
#include "src/base/bits.h"
#include "src/base/bounds.h"
#include "src/base/macros.h"
#include "src/common/checks.h"
#include "src/flags/flags.h"
Include dependency graph for elements-kind.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define TYPED_ARRAYS_BASE(V)
 
#define TYPED_ARRAYS_FLOAT16(V)
 
#define TYPED_ARRAYS(V)
 
#define RAB_GSAB_TYPED_ARRAYS_BASE(V)
 
#define RAB_GSAB_TYPED_ARRAYS_FLOAT16(V)
 
#define RAB_GSAB_TYPED_ARRAYS(V)
 
#define RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE_BASE(V)
 
#define RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE_FLOAT16(V)
 
#define RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE(V)
 
#define RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND_BASE(V)
 
#define RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND_FLOAT16(V)
 
#define RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND(V)
 
#define TYPED_ARRAY_ELEMENTS_KIND(Type, type, TYPE, ctype)
 

Enumerations

enum  v8::internal::ElementsKind : uint8_t {
  v8::internal::PACKED_SMI_ELEMENTS , v8::internal::PACKED_ELEMENTS , v8::internal::PACKED_DOUBLE_ELEMENTS , v8::internal::PACKED_NONEXTENSIBLE_ELEMENTS ,
  v8::internal::HOLEY_NONEXTENSIBLE_ELEMENTS , v8::internal::PACKED_SEALED_ELEMENTS , v8::internal::HOLEY_SEALED_ELEMENTS , v8::internal::PACKED_FROZEN_ELEMENTS ,
  v8::internal::HOLEY_FROZEN_ELEMENTS , v8::internal::SHARED_ARRAY_ELEMENTS , v8::internal::DICTIONARY_ELEMENTS , v8::internal::FAST_SLOPPY_ARGUMENTS_ELEMENTS ,
  v8::internal::SLOW_SLOPPY_ARGUMENTS_ELEMENTS , v8::internal::FAST_STRING_WRAPPER_ELEMENTS , v8::internal::SLOW_STRING_WRAPPER_ELEMENTS , v8::internal::WASM_ARRAY_ELEMENTS ,
  v8::internal::NO_ELEMENTS , v8::internal::FIRST_ELEMENTS_KIND = PACKED_SMI_ELEMENTS , v8::internal::LAST_ELEMENTS_KIND = RAB_GSAB_FLOAT16_ELEMENTS , v8::internal::FIRST_FAST_ELEMENTS_KIND = PACKED_SMI_ELEMENTS ,
  v8::internal::LAST_FAST_ELEMENTS_KIND = HOLEY_DOUBLE_ELEMENTS , v8::internal::FIRST_FIXED_TYPED_ARRAY_ELEMENTS_KIND = UINT8_ELEMENTS , v8::internal::LAST_FIXED_TYPED_ARRAY_ELEMENTS_KIND = FLOAT16_ELEMENTS , v8::internal::FIRST_RAB_GSAB_FIXED_TYPED_ARRAY_ELEMENTS_KIND = RAB_GSAB_UINT8_ELEMENTS ,
  v8::internal::LAST_RAB_GSAB_FIXED_TYPED_ARRAY_ELEMENTS_KIND = RAB_GSAB_FLOAT16_ELEMENTS , v8::internal::TERMINAL_FAST_ELEMENTS_KIND = HOLEY_ELEMENTS , v8::internal::FIRST_ANY_NONEXTENSIBLE_ELEMENTS_KIND = PACKED_NONEXTENSIBLE_ELEMENTS , v8::internal::LAST_ANY_NONEXTENSIBLE_ELEMENTS_KIND = SHARED_ARRAY_ELEMENTS ,
  v8::internal::FIRST_VALID_ATOMICS_TYPED_ARRAY_ELEMENTS_KIND = UINT8_ELEMENTS , v8::internal::LAST_VALID_ATOMICS_TYPED_ARRAY_ELEMENTS_KIND = BIGINT64_ELEMENTS , v8::internal::SYSTEM_POINTER_ELEMENTS = PACKED_ELEMENTS
}
 

Functions

std::ostream & v8::internal::operator<< (std::ostream &os, ElementsKind kind)
 
const uint8_t * v8::internal::TypedArrayAndRabGsabTypedArrayElementsKindShifts ()
 
const uint8_t * v8::internal::TypedArrayAndRabGsabTypedArrayElementsKindSizes ()
 
constexpr int v8::internal::ElementsKindToShiftSize (ElementsKind elements_kind)
 
constexpr int v8::internal::ElementsKindToByteSize (ElementsKind elements_kind)
 
int v8::internal::GetDefaultHeaderSizeForElementsKind (ElementsKind elements_kind)
 
const char * v8::internal::ElementsKindToString (ElementsKind kind)
 
ElementsKind v8::internal::GetInitialFastElementsKind ()
 
ElementsKind v8::internal::GetFastElementsKindFromSequenceIndex (int sequence_number)
 
int v8::internal::GetSequenceIndexFromFastElementsKind (ElementsKind elements_kind)
 
ElementsKind v8::internal::GetNextTransitionElementsKind (ElementsKind kind)
 
bool v8::internal::IsDictionaryElementsKind (ElementsKind kind)
 
bool v8::internal::IsFastArgumentsElementsKind (ElementsKind kind)
 
bool v8::internal::IsSlowArgumentsElementsKind (ElementsKind kind)
 
bool v8::internal::IsSloppyArgumentsElementsKind (ElementsKind kind)
 
bool v8::internal::IsStringWrapperElementsKind (ElementsKind kind)
 
bool v8::internal::IsTypedArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsRabGsabTypedArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsTypedArrayOrRabGsabTypedArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsBigIntTypedArrayElementsKind (ElementsKind kind)
 
constexpr bool v8::internal::IsFloat16TypedArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsFloatTypedArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsSignedIntTypedArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsUnsignedIntTypedArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsWasmArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsSharedArrayElementsKind (ElementsKind kind)
 
bool v8::internal::IsTerminalElementsKind (ElementsKind kind)
 
bool v8::internal::IsFastElementsKind (ElementsKind kind)
 
bool v8::internal::IsTransitionElementsKind (ElementsKind kind)
 
constexpr bool v8::internal::IsDoubleElementsKind (ElementsKind kind)
 
bool v8::internal::IsAnyNonextensibleElementsKindUnchecked (ElementsKind kind)
 
bool v8::internal::IsAnyNonextensibleElementsKind (ElementsKind kind)
 
bool v8::internal::IsNonextensibleElementsKind (ElementsKind kind)
 
bool v8::internal::IsSealedElementsKind (ElementsKind kind)
 
bool v8::internal::IsFrozenElementsKind (ElementsKind kind)
 
bool v8::internal::IsFastOrNonextensibleOrSealedElementsKind (ElementsKind kind)
 
bool v8::internal::IsSmiOrObjectElementsKind (ElementsKind kind)
 
constexpr bool v8::internal::IsSmiElementsKind (ElementsKind kind)
 
bool v8::internal::IsFastNumberElementsKind (ElementsKind kind)
 
constexpr bool v8::internal::IsObjectElementsKind (ElementsKind kind)
 
bool v8::internal::IsAnyHoleyNonextensibleElementsKind (ElementsKind kind)
 
constexpr bool v8::internal::IsHoleyElementsKind (ElementsKind kind)
 
bool v8::internal::IsHoleyElementsKindForRead (ElementsKind kind)
 
bool v8::internal::IsHoleyOrDictionaryElementsKind (ElementsKind kind)
 
bool v8::internal::IsFastPackedElementsKind (ElementsKind kind)
 
ElementsKind v8::internal::GetPackedElementsKind (ElementsKind holey_kind)
 
ElementsKind v8::internal::GetHoleyElementsKind (ElementsKind packed_kind)
 
ElementsKind v8::internal::GetCorrespondingRabGsabElementsKind (ElementsKind typed_array_kind)
 
ElementsKind v8::internal::GetCorrespondingNonRabGsabElementsKind (ElementsKind typed_array_kind)
 
bool v8::internal::UnionElementsKindUptoPackedness (ElementsKind *a_out, ElementsKind b)
 
bool v8::internal::UnionElementsKindUptoSize (ElementsKind *a_out, ElementsKind b)
 
ElementsKind v8::internal::FastSmiToObjectElementsKind (ElementsKind from_kind)
 
bool v8::internal::IsSimpleMapChangeTransition (ElementsKind from_kind, ElementsKind to_kind)
 
bool v8::internal::IsMoreGeneralElementsKindTransition (ElementsKind from_kind, ElementsKind to_kind)
 
ElementsKind v8::internal::GetMoreGeneralElementsKind (ElementsKind from_kind, ElementsKind to_kind)
 
bool v8::internal::IsTransitionableFastElementsKind (ElementsKind from_kind)
 
bool v8::internal::ElementsKindEqual (ElementsKind a, ElementsKind b)
 

Variables

constexpr int v8::internal::kElementsKindCount = LAST_ELEMENTS_KIND - FIRST_ELEMENTS_KIND + 1
 
constexpr int v8::internal::kFastElementsKindCount
 
constexpr int v8::internal::kFastElementsKindPackedToHoley
 
constexpr int v8::internal::kElementsKindBits = 6
 
constexpr int v8::internal::kFastElementsKindBits = 3
 

Macro Definition Documentation

◆ RAB_GSAB_TYPED_ARRAYS

#define RAB_GSAB_TYPED_ARRAYS ( V)
Value:
RAB_GSAB_TYPED_ARRAYS_FLOAT16(V)
#define V(Name)
#define RAB_GSAB_TYPED_ARRAYS_BASE(V)

Definition at line 54 of file elements-kind.h.

◆ RAB_GSAB_TYPED_ARRAYS_BASE

#define RAB_GSAB_TYPED_ARRAYS_BASE ( V)
Value:
V(RabGsabUint8, rab_gsab_uint8, RAB_GSAB_UINT8, uint8_t) \
V(RabGsabInt8, rab_gsab_int8, RAB_GSAB_INT8, int8_t) \
V(RabGsabUint16, rab_gsab_uint16, RAB_GSAB_UINT16, uint16_t) \
V(RabGsabInt16, rab_gsab_int16, RAB_GSAB_INT16, int16_t) \
V(RabGsabUint32, rab_gsab_uint32, RAB_GSAB_UINT32, uint32_t) \
V(RabGsabInt32, rab_gsab_int32, RAB_GSAB_INT32, int32_t) \
V(RabGsabBigUint64, rab_gsab_biguint64, RAB_GSAB_BIGUINT64, uint64_t) \
V(RabGsabBigInt64, rab_gsab_bigint64, RAB_GSAB_BIGINT64, int64_t) \
V(RabGsabUint8Clamped, rab_gsab_uint8_clamped, RAB_GSAB_UINT8_CLAMPED, \
uint8_t) \
V(RabGsabFloat32, rab_gsab_float32, RAB_GSAB_FLOAT32, float) \
V(RabGsabFloat64, rab_gsab_float64, RAB_GSAB_FLOAT64, double)

Definition at line 37 of file elements-kind.h.

◆ RAB_GSAB_TYPED_ARRAYS_FLOAT16

#define RAB_GSAB_TYPED_ARRAYS_FLOAT16 ( V)
Value:
V(RabGsabFloat16, rab_gsab_float16, RAB_GSAB_FLOAT16, uint16_t)

Definition at line 51 of file elements-kind.h.

◆ RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND

#define RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND ( V)
Value:
RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND_FLOAT16(V)
#define RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND_BASE(V)

Definition at line 101 of file elements-kind.h.

◆ RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND_BASE

#define RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND_BASE ( V)
Value:
V(RabGsabUint8, rab_gsab_uint8, RAB_GSAB_UINT8, uint8_t, UINT8) \
V(RabGsabInt8, rab_gsab_int8, RAB_GSAB_INT8, int8_t, INT8) \
V(RabGsabUint16, rab_gsab_uint16, RAB_GSAB_UINT16, uint16_t, UINT16) \
V(RabGsabInt16, rab_gsab_int16, RAB_GSAB_INT16, int16_t, INT16) \
V(RabGsabUint32, rab_gsab_uint32, RAB_GSAB_UINT32, uint32_t, UINT32) \
V(RabGsabInt32, rab_gsab_int32, RAB_GSAB_INT32, int32_t, INT32) \
V(RabGsabBigUint64, rab_gsab_biguint64, RAB_GSAB_BIGUINT64, uint64_t, \
BIGUINT64) \
V(RabGsabBigInt64, rab_gsab_bigint64, RAB_GSAB_BIGINT64, int64_t, BIGINT64) \
V(RabGsabUint8Clamped, rab_gsab_uint8_clamped, RAB_GSAB_UINT8_CLAMPED, \
uint8_t, UINT8_CLAMPED) \
V(RabGsabFloat32, rab_gsab_float32, RAB_GSAB_FLOAT32, float, FLOAT32) \
V(RabGsabFloat64, rab_gsab_float64, RAB_GSAB_FLOAT64, double, FLOAT64)

Definition at line 83 of file elements-kind.h.

◆ RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND_FLOAT16

#define RAB_GSAB_TYPED_ARRAYS_WITH_NON_RAB_GSAB_ELEMENTS_KIND_FLOAT16 ( V)
Value:
V(RabGsabFloat16, rab_gsab_float16, RAB_GSAB_FLOAT16, uint16_t, FLOAT16)

Definition at line 98 of file elements-kind.h.

◆ RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE

#define RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE ( V)
Value:
RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE_FLOAT16(V)
#define RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE_BASE(V)

Definition at line 77 of file elements-kind.h.

◆ RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE_BASE

#define RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE_BASE ( V)
Value:
V(Uint8, rab_gsab_uint8, RAB_GSAB_UINT8, uint8_t) \
V(Int8, rab_gsab_int8, RAB_GSAB_INT8, int8_t) \
V(Uint16, rab_gsab_uint16, RAB_GSAB_UINT16, uint16_t) \
V(Int16, rab_gsab_int16, RAB_GSAB_INT16, int16_t) \
V(Uint32, rab_gsab_uint32, RAB_GSAB_UINT32, uint32_t) \
V(Int32, rab_gsab_int32, RAB_GSAB_INT32, int32_t) \
V(BigUint64, rab_gsab_biguint64, RAB_GSAB_BIGUINT64, uint64_t) \
V(BigInt64, rab_gsab_bigint64, RAB_GSAB_BIGINT64, int64_t) \
V(Uint8Clamped, rab_gsab_uint8_clamped, RAB_GSAB_UINT8_CLAMPED, uint8_t) \
V(Float32, rab_gsab_float32, RAB_GSAB_FLOAT32, float) \
V(Float64, rab_gsab_float64, RAB_GSAB_FLOAT64, double)

Definition at line 61 of file elements-kind.h.

◆ RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE_FLOAT16

#define RAB_GSAB_TYPED_ARRAYS_WITH_TYPED_ARRAY_TYPE_FLOAT16 ( V)
Value:
V(Float16, rab_gsab_float16, RAB_GSAB_FLOAT16, uint16_t)

Definition at line 74 of file elements-kind.h.

◆ TYPED_ARRAY_ELEMENTS_KIND

#define TYPED_ARRAY_ELEMENTS_KIND ( Type,
type,
TYPE,
ctype )
Value:
TYPE##_ELEMENTS,

Definition at line 150 of file elements-kind.h.

◆ TYPED_ARRAYS

#define TYPED_ARRAYS ( V)
Value:
TYPED_ARRAYS_FLOAT16(V)
#define TYPED_ARRAYS_BASE(V)

Definition at line 33 of file elements-kind.h.

◆ TYPED_ARRAYS_BASE

#define TYPED_ARRAYS_BASE ( V)
Value:
V(Uint8, uint8, UINT8, uint8_t) \
V(Int8, int8, INT8, int8_t) \
V(Uint16, uint16, UINT16, uint16_t) \
V(Int16, int16, INT16, int16_t) \
V(Uint32, uint32, UINT32, uint32_t) \
V(Int32, int32, INT32, int32_t) \
V(BigUint64, biguint64, BIGUINT64, uint64_t) \
V(BigInt64, bigint64, BIGINT64, int64_t) \
V(Uint8Clamped, uint8_clamped, UINT8_CLAMPED, uint8_t) \
V(Float32, float32, FLOAT32, float) \
V(Float64, float64, FLOAT64, double)

Definition at line 18 of file elements-kind.h.

◆ TYPED_ARRAYS_FLOAT16

#define TYPED_ARRAYS_FLOAT16 ( V)
Value:
V(Float16, float16, FLOAT16, uint16_t)

Definition at line 31 of file elements-kind.h.