v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::detail Namespace Reference

Classes

class  ArrayHeaderBase
 
class  ArrayHeaderBase< Super, false >
 
class  ArrayHeaderBase< Super, true >
 
class  AsyncWaiterNotifyTask
 
class  AsyncWaiterQueueNode
 
class  AsyncWaiterTimeoutTask
 
struct  BaseForTagged
 
struct  BaseForTagged< FieldType >
 
struct  BaseForTagged< MaybeWeak< T > >
 
struct  BaseForTagged< Union< T... > >
 
class  BuiltinArgumentsTS
 
struct  FirstInvalidRegisterHelper
 
struct  FirstInvalidRegisterHelper< N, N >
 
struct  FlattenUnionHelper
 
struct  FlattenUnionHelper< Union< OutputTs... > >
 
struct  FlattenUnionHelper< Union< OutputTs... >, Head, Ts... >
 
struct  FlattenUnionHelper< Union< OutputTs... >, Smi, Ts... >
 
struct  FlattenUnionHelper< Union< OutputTs... >, Union< HeadTs... >, Ts... >
 
struct  HeapObjectAndSlotPOD
 
struct  is_complex_subtype
 
struct  is_complex_subtype< Derived, HeapObject, std::enable_if_t< std::disjunction_v< std::is_base_of< HeapObject, Derived >, std::is_base_of< HeapObjectLayout, Derived > > > >
 
struct  is_complex_subtype< Derived, MaybeWeak< Base >, std::enable_if_t<!is_union_v< Derived > &&!is_maybe_weak_v< Derived > > >
 
struct  is_complex_subtype< Derived, Object, std::enable_if_t< std::conjunction_v< std::negation< is_union< Derived > >, is_subtype< Derived, HeapObject > > > >
 
struct  is_complex_subtype< Derived, Struct, std::enable_if_t< std::disjunction_v< std::is_base_of< Struct, Derived >, std::is_base_of< StructLayout, Derived > > > >
 
struct  is_complex_subtype< Derived, TrustedObject, std::enable_if_t< std::disjunction_v< std::is_base_of< TrustedObject, Derived >, std::is_base_of< TrustedObjectLayout, Derived > > > >
 
struct  is_complex_subtype< Derived, Union< BaseTs... > >
 
struct  is_complex_subtype< MaybeWeak< Derived >, MaybeWeak< Base > >
 
struct  is_complex_subtype< Union< DerivedTs... >, Base >
 
struct  is_complex_subtype< Union< DerivedTs... >, Union< BaseTs... > >
 
struct  is_simple_subtype
 
struct  is_simple_subtype< ClearedWeakValue, MaybeWeak< T > >
 
struct  is_simple_subtype< Derived, Union< BaseTs... > >
 
struct  is_simple_subtype< FieldType, Object >
 
struct  is_simple_subtype< HeapObject, Object >
 
struct  is_simple_subtype< HeapObjectLayout, Object >
 
struct  is_simple_subtype< MaybeWeak< Object >, Union< HeapObject, MaybeWeak< HeapObject >, Smi > >
 
struct  is_simple_subtype< MaybeWeak< T >, MaybeWeak< T > >
 
struct  is_simple_subtype< Object, Object >
 
struct  is_simple_subtype< Object, Union< HeapObject, MaybeWeak< HeapObject >, Smi > >
 
struct  is_simple_subtype< Object, Union< HeapObject, Smi > >
 
struct  is_simple_subtype< Smi, MaybeWeak< Object > >
 
struct  is_simple_subtype< Smi, Object >
 
struct  is_simple_subtype< T, MaybeWeak< T > >
 
struct  is_simple_subtype< T, T >
 
struct  is_simple_subtype< TaggedIndex, Object >
 
struct  is_simple_subtype< Union< DerivedTs... >, Base >
 
struct  is_simple_subtype< Union< DerivedTs... >, Union< BaseTs... > >
 
struct  is_simple_subtype< Union< Ts... >, Union< Ts... > >
 
struct  IsRegisterArray
 
struct  IsRegisterArray< EmptyRegisterArray >
 
struct  IsRegisterArray< std::array< Register, N > >
 
class  SyncWaiterQueueNode
 
struct  TaggedArrayHeaderHelper
 
struct  TaggedArrayHeaderHelper< Shape, Super, std::void_t< typename Shape::template ExtraFields< Super > > >
 
class  TaggedOperatorArrowRef
 
struct  UnionWithoutHelper
 
struct  UnionWithoutHelper< Union< OutputTs... >, TWithout >
 
struct  UnionWithoutHelper< Union< OutputTs... >, TWithout, Head, Ts... >
 
struct  UnionWithoutHelper< Union< OutputTs... >, TWithout, TWithout, Ts... >
 
class  WaiterQueueLockGuard
 
class  WaiterQueueNode
 

Typedefs

template<class Shape , class Super >
using TaggedArrayHeader = typename TaggedArrayHeaderHelper<Shape, Super>::type
 
using ArrayIndexT = uint32_t
 

Enumerations

enum  IndexParseResult { kSuccess , kNonIndex , kOverflow }
 

Functions

template<size_t N, size_t Index = 0>
constexpr size_t FirstInvalidRegister (std::array< Register, N > regs)
 
constexpr size_t FirstInvalidRegister (EmptyRegisterArray regs)
 
template<typename CppType >
static void Destructor (void *ptr)
 
V8_EXPORT_PRIVATE uint64_t HashConvertingTo8Bit (const uint16_t *chars, uint32_t length, uint64_t seed)
 
template<typename T >
uint32_t ConvertRawHashToUsableHash (T raw_hash)
 
V8_INLINE bool IsOnly8Bit (const uint16_t *chars, unsigned len)
 
V8_INLINE uint64_t GetRapidHash (const uint8_t *chars, uint32_t length, uint64_t seed)
 
V8_INLINE uint64_t GetRapidHash (const uint16_t *chars, uint32_t length, uint64_t seed)
 
template<typename uchar >
V8_INLINE uint32_t GetUsableRapidHash (const uchar *chars, uint32_t length, uint64_t seed)
 
template<typename uchar >
V8_INLINE IndexParseResult TryParseArrayIndex (const uchar *chars, uint32_t length, uint32_t &i, ArrayIndexT &index)
 

Variables

constexpr int kTagBits = 2
 
constexpr int kTagMask = (1 << kTagBits) - 1
 
constexpr int kLongTagBits = 6
 
constexpr int kEmbeddedObjectTag = 0
 
constexpr int kCodeTargetTag = 1
 
constexpr int kWasmStubCallTag = 2
 
constexpr int kDefaultTag = 3
 
constexpr int kSmallPCDeltaBits = kBitsPerByte - kTagBits
 
constexpr int kSmallPCDeltaMask = (1 << kSmallPCDeltaBits) - 1
 
v8::internal::detail::ArrayHeaderBase< Super, false > V8_OBJECT_END
 
template<typename Derived , typename Base >
static constexpr bool is_simple_subtype_v
 
template<typename Derived , typename Base >
static constexpr bool is_complex_subtype_v
 

Typedef Documentation

◆ ArrayIndexT

Definition at line 125 of file string-hasher-inl.h.

◆ TaggedArrayHeader

template<class Shape , class Super >
using v8::internal::detail::TaggedArrayHeader = typename TaggedArrayHeaderHelper<Shape, Super>::type

Definition at line 82 of file fixed-array.h.

Enumeration Type Documentation

◆ IndexParseResult

Enumerator
kSuccess 
kNonIndex 
kOverflow 

Definition at line 118 of file string-hasher-inl.h.

Function Documentation

◆ ConvertRawHashToUsableHash()

template<typename T >
uint32_t v8::internal::detail::ConvertRawHashToUsableHash ( T raw_hash)

Definition at line 37 of file string-hasher-inl.h.

Here is the caller graph for this function:

◆ Destructor()

template<typename CppType >
static void v8::internal::detail::Destructor ( void * ptr)
static

Definition at line 19 of file managed-inl.h.

Here is the caller graph for this function:

◆ FirstInvalidRegister() [1/2]

size_t v8::internal::detail::FirstInvalidRegister ( EmptyRegisterArray regs)
constexpr

Definition at line 200 of file interface-descriptors-inl.h.

◆ FirstInvalidRegister() [2/2]

template<size_t N, size_t Index = 0>
size_t v8::internal::detail::FirstInvalidRegister ( std::array< Register, N > regs)
constexpr

Definition at line 197 of file interface-descriptors-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetRapidHash() [1/2]

V8_INLINE uint64_t v8::internal::detail::GetRapidHash ( const uint16_t * chars,
uint32_t length,
uint64_t seed )

Definition at line 60 of file string-hasher-inl.h.

Here is the call graph for this function:

◆ GetRapidHash() [2/2]

V8_INLINE uint64_t v8::internal::detail::GetRapidHash ( const uint8_t * chars,
uint32_t length,
uint64_t seed )

Definition at line 55 of file string-hasher-inl.h.

Here is the caller graph for this function:

◆ GetUsableRapidHash()

template<typename uchar >
V8_INLINE uint32_t v8::internal::detail::GetUsableRapidHash ( const uchar * chars,
uint32_t length,
uint64_t seed )

Definition at line 71 of file string-hasher-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HashConvertingTo8Bit()

uint64_t v8::internal::detail::HashConvertingTo8Bit ( const uint16_t * chars,
uint32_t length,
uint64_t seed )

Definition at line 71 of file string-hasher.cc.

Here is the caller graph for this function:

◆ IsOnly8Bit()

V8_INLINE bool v8::internal::detail::IsOnly8Bit ( const uint16_t * chars,
unsigned len )

Definition at line 44 of file string-hasher-inl.h.

Here is the caller graph for this function:

◆ TryParseArrayIndex()

template<typename uchar >
V8_INLINE IndexParseResult v8::internal::detail::TryParseArrayIndex ( const uchar * chars,
uint32_t length,
uint32_t & i,
ArrayIndexT & index )

Definition at line 129 of file string-hasher-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ is_complex_subtype_v

template<typename Derived , typename Base >
bool v8::internal::detail::is_complex_subtype_v
staticconstexpr
Initial value:
=
is_complex_subtype<Derived, Base>::value

Definition at line 254 of file tagged.h.

◆ is_simple_subtype_v

template<typename Derived , typename Base >
bool v8::internal::detail::is_simple_subtype_v
staticconstexpr
Initial value:
=
is_simple_subtype<Derived, Base>::value

Definition at line 163 of file tagged.h.

◆ kCodeTargetTag

int v8::internal::detail::kCodeTargetTag = 1
constexpr

Definition at line 76 of file reloc-info.h.

◆ kDefaultTag

int v8::internal::detail::kDefaultTag = 3
constexpr

Definition at line 78 of file reloc-info.h.

◆ kEmbeddedObjectTag

int v8::internal::detail::kEmbeddedObjectTag = 0
constexpr

Definition at line 75 of file reloc-info.h.

◆ kLongTagBits

int v8::internal::detail::kLongTagBits = 6
constexpr

Definition at line 73 of file reloc-info.h.

◆ kSmallPCDeltaBits

int v8::internal::detail::kSmallPCDeltaBits = kBitsPerByte - kTagBits
constexpr

Definition at line 80 of file reloc-info.h.

◆ kSmallPCDeltaMask

int v8::internal::detail::kSmallPCDeltaMask = (1 << kSmallPCDeltaBits) - 1
constexpr

Definition at line 81 of file reloc-info.h.

◆ kTagBits

int v8::internal::detail::kTagBits = 2
constexpr

Definition at line 71 of file reloc-info.h.

◆ kTagMask

int v8::internal::detail::kTagMask = (1 << kTagBits) - 1
constexpr

Definition at line 72 of file reloc-info.h.

◆ kWasmStubCallTag

int v8::internal::detail::kWasmStubCallTag = 2
constexpr

Definition at line 77 of file reloc-info.h.

◆ V8_OBJECT_END

v8::internal::detail::ArrayHeaderBase< Super, true > v8::internal::detail::V8_OBJECT_END