v8  9.0.257(node16.0.0)
V8 is Google's open source JavaScript engine
v8::internal Namespace Reference

Namespaces

 wasm
 

Data Structures

class  Arguments
 
class  BackingStoreBase
 
struct  CastCheck
 
class  CFunctionInfoImpl
 
struct  count
 
struct  count< T, T, Args... >
 
struct  count< T, U, Args... >
 
class  CustomArguments
 
struct  GetCType
 
struct  GetCType< FastApiCallbackOptions & >
 
class  Internals
 
struct  SmiTagging
 
struct  SmiTagging< 4 >
 
struct  SmiTagging< 8 >
 

Typedefs

typedef uintptr_t Address
 
using ExternalPointer_t = Address
 
using PlatformSmiTagging = SmiTagging< kApiTaggedSize >
 

Enumerations

enum  ExternalPointerTag : Address {
  kExternalPointerNullTag = static_cast<Address>(0ULL), kArrayBufferBackingStoreTag = static_cast<Address>(1ULL << 48), kTypedArrayExternalPointerTag = static_cast<Address>(2ULL << 48), kDataViewDataPointerTag = static_cast<Address>(3ULL << 48),
  kExternalStringResourceTag = static_cast<Address>(4ULL << 48), kExternalStringResourceDataTag = static_cast<Address>(5ULL << 48), kForeignForeignAddressTag = static_cast<Address>(6ULL << 48), kNativeContextMicrotaskQueueTag = static_cast<Address>(7ULL << 48),
  kEmbedderDataSlotPayloadTag = static_cast<Address>(0ULL << 48)
}
 

Functions

constexpr bool PointerCompressionIsEnabled ()
 
constexpr bool HeapSandboxIsEnabled ()
 
constexpr bool SmiValuesAre31Bits ()
 
constexpr bool SmiValuesAre32Bits ()
 
V8_EXPORT Address DecodeExternalPointerImpl (const Isolate *isolate, ExternalPointer_t pointer, ExternalPointerTag tag)
 
V8_EXPORT internal::Isolate * IsolateFromNeverReadOnlySpaceObject (Address obj)
 
V8_EXPORT bool ShouldThrowOnError (v8::internal::Isolate *isolate)
 
template<class T >
V8_INLINE void PerformCastCheck (T *data)
 

Variables

const int kApiSystemPointerSize = sizeof(void*)
 
const int kApiDoubleSize = sizeof(double)
 
const int kApiInt32Size = sizeof(int32_t)
 
const int kApiInt64Size = sizeof(int64_t)
 
const int kHeapObjectTag = 1
 
const int kWeakHeapObjectTag = 3
 
const int kHeapObjectTagSize = 2
 
const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1
 
const int kSmiTag = 0
 
const int kSmiTagSize = 1
 
const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1
 
constexpr intptr_t kIntptrAllBitsSet = intptr_t{-1}
 
constexpr uintptr_t kUintptrAllBitsSet
 
const int kApiTaggedSize = kApiSystemPointerSize
 
const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize
 
const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize
 
const int kSmiMinValue = static_cast<int>(PlatformSmiTagging::kSmiMinValue)
 
const int kSmiMaxValue = static_cast<int>(PlatformSmiTagging::kSmiMaxValue)
 

Typedef Documentation

◆ Address

typedef uintptr_t Address

Definition at line 24 of file v8-internal.h.

◆ ExternalPointer_t

Definition at line 121 of file v8-internal.h.

◆ PlatformSmiTagging

Definition at line 143 of file v8-internal.h.

Enumeration Type Documentation

◆ ExternalPointerTag

Enumerator
kExternalPointerNullTag 
kArrayBufferBackingStoreTag 
kTypedArrayExternalPointerTag 
kDataViewDataPointerTag 
kExternalStringResourceTag 
kExternalStringResourceDataTag 
kForeignForeignAddressTag 
kNativeContextMicrotaskQueueTag 
kEmbedderDataSlotPayloadTag 

Definition at line 126 of file v8-internal.h.

Function Documentation

◆ DecodeExternalPointerImpl()

V8_EXPORT Address v8::internal::DecodeExternalPointerImpl ( const Isolate isolate,
ExternalPointer_t  pointer,
ExternalPointerTag  tag 
)

◆ HeapSandboxIsEnabled()

constexpr bool v8::internal::HeapSandboxIsEnabled ( )
constexpr

Definition at line 113 of file v8-internal.h.

Referenced by V8::Initialize().

◆ IsolateFromNeverReadOnlySpaceObject()

V8_EXPORT internal::Isolate* v8::internal::IsolateFromNeverReadOnlySpaceObject ( Address  obj)

◆ PerformCastCheck()

V8_INLINE void v8::internal::PerformCastCheck ( T *  data)

Definition at line 450 of file v8-internal.h.

◆ PointerCompressionIsEnabled()

constexpr bool v8::internal::PointerCompressionIsEnabled ( )
constexpr

Definition at line 109 of file v8-internal.h.

References kApiSystemPointerSize, and kApiTaggedSize.

Referenced by V8::Initialize().

◆ ShouldThrowOnError()

V8_EXPORT bool v8::internal::ShouldThrowOnError ( v8::internal::Isolate *  isolate)

◆ SmiValuesAre31Bits()

constexpr bool v8::internal::SmiValuesAre31Bits ( )
constexpr

Definition at line 152 of file v8-internal.h.

References kSmiValueSize.

Referenced by V8::Initialize().

◆ SmiValuesAre32Bits()

constexpr bool v8::internal::SmiValuesAre32Bits ( )
constexpr

Definition at line 153 of file v8-internal.h.

References kSmiValueSize.

Variable Documentation

◆ kApiDoubleSize

const int kApiDoubleSize = sizeof(double)

Definition at line 33 of file v8-internal.h.

◆ kApiInt32Size

const int kApiInt32Size = sizeof(int32_t)

Definition at line 34 of file v8-internal.h.

◆ kApiInt64Size

const int kApiInt64Size = sizeof(int64_t)

Definition at line 35 of file v8-internal.h.

◆ kApiSystemPointerSize

const int kApiSystemPointerSize = sizeof(void*)

Configuration of tagging scheme.

Definition at line 32 of file v8-internal.h.

Referenced by Internals::GetEmbedderData(), Internals::GetRoot(), PointerCompressionIsEnabled(), and Internals::SetEmbedderData().

◆ kApiTaggedSize

const int kApiTaggedSize = kApiSystemPointerSize

Definition at line 106 of file v8-internal.h.

Referenced by PointerCompressionIsEnabled().

◆ kHeapObjectTag

const int kHeapObjectTag = 1

Definition at line 38 of file v8-internal.h.

Referenced by Internals::HasHeapObjectTag(), and Internals::ReadRawField().

◆ kHeapObjectTagMask

const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1

Definition at line 41 of file v8-internal.h.

Referenced by Internals::HasHeapObjectTag().

◆ kHeapObjectTagSize

const int kHeapObjectTagSize = 2

Definition at line 40 of file v8-internal.h.

◆ kIntptrAllBitsSet

constexpr intptr_t kIntptrAllBitsSet = intptr_t{-1}
constexpr

Definition at line 51 of file v8-internal.h.

◆ kSmiMaxValue

const int kSmiMaxValue = static_cast<int>(PlatformSmiTagging::kSmiMaxValue)

Definition at line 151 of file v8-internal.h.

◆ kSmiMinValue

const int kSmiMinValue = static_cast<int>(PlatformSmiTagging::kSmiMinValue)

Definition at line 150 of file v8-internal.h.

◆ kSmiShiftSize

const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize

Definition at line 148 of file v8-internal.h.

◆ kSmiTag

const int kSmiTag = 0

Definition at line 44 of file v8-internal.h.

◆ kSmiTagMask

const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1

Definition at line 46 of file v8-internal.h.

◆ kSmiTagSize

const int kSmiTagSize = 1

Definition at line 45 of file v8-internal.h.

Referenced by SmiTagging< 4 >::SmiToInt(), and SmiTagging< 8 >::SmiToInt().

◆ kSmiValueSize

const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize

Definition at line 149 of file v8-internal.h.

Referenced by SmiValuesAre31Bits(), and SmiValuesAre32Bits().

◆ kUintptrAllBitsSet

constexpr uintptr_t kUintptrAllBitsSet
constexpr
Initial value:
=
static_cast<uintptr_t>(kIntptrAllBitsSet)

Definition at line 52 of file v8-internal.h.

◆ kWeakHeapObjectTag

const int kWeakHeapObjectTag = 3

Definition at line 39 of file v8-internal.h.

v8::internal::kIntptrAllBitsSet
constexpr intptr_t kIntptrAllBitsSet
Definition: v8-internal.h:51