v8  9.4.146 (node 16.15.0)
V8 is Google's open source JavaScript engine
v8::internal Namespace Reference

Namespaces

 wasm
 

Data Structures

struct  count
 
struct  count< T, T, Args... >
 
struct  count< T, U, Args... >
 
class  CFunctionInfoImpl
 
struct  TypeInfoHelper
 
struct  CTypeInfoTraits
 
struct  TypeInfoHelper< v8::Local< v8::Array > >
 
struct  TypeInfoHelper< v8::Local< v8::Uint32Array > >
 
struct  TypeInfoHelper< FastApiCallbackOptions & >
 
class  CTypeInfoBuilder
 
class  CFunctionBuilderWithFunction
 
class  CFunctionBuilder
 
struct  SmiTagging
 
struct  SmiTagging< 4 >
 
struct  SmiTagging< 8 >
 
class  Internals
 
struct  CastCheck
 
class  BackingStoreBase
 
class  Arguments
 
class  CustomArguments
 

Typedefs

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

Enumerations

enum  ExternalPointerTag : uint64_t {
  kExternalPointerNullTag = 0x0000000000000000 , kArrayBufferBackingStoreTag = 0x00ff000000000000 , kTypedArrayExternalPointerTag = 0x017f000000000000 , kDataViewDataPointerTag = 0x01bf000000000000 ,
  kExternalStringResourceTag = 0x01df000000000000 , kExternalStringResourceDataTag = 0x01ef000000000000 , kForeignForeignAddressTag = 0x01f7000000000000 , kNativeContextMicrotaskQueueTag = 0x01fb000000000000 ,
  kEmbedderDataSlotPayloadTag = 0x01fd000000000000 , kCodeEntryPointTag = 0x01fe000000000000
}
 

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)
 
V8_EXPORT bool CanHaveInternalField (int instance_type)
 
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 kApiSizetSize = sizeof(size_t)
 
const int kHeapObjectTag = 1
 
const int kWeakHeapObjectTag = 3
 
const int kHeapObjectTagSize = 2
 
const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1
 
const int kForwardingTag = 0
 
const int kForwardingTagSize = 2
 
const intptr_t kForwardingTagMask = (1 << kForwardingTagSize) - 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
 
constexpr uint64_t kExternalPointerTagMask = 0xffff000000000000
 
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 29 of file v8-internal.h.

◆ ExternalPointer_t

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

◆ PlatformSmiTagging

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

Enumeration Type Documentation

◆ ExternalPointerTag

enum ExternalPointerTag : uint64_t
Enumerator
kExternalPointerNullTag 
kArrayBufferBackingStoreTag 
kTypedArrayExternalPointerTag 
kDataViewDataPointerTag 
kExternalStringResourceTag 
kExternalStringResourceDataTag 
kForeignForeignAddressTag 
kNativeContextMicrotaskQueueTag 
kEmbedderDataSlotPayloadTag 
kCodeEntryPointTag 

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

Function Documentation

◆ CanHaveInternalField()

V8_EXPORT bool v8::internal::CanHaveInternalField ( int  instance_type)

◆ 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 124 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 504 of file v8-internal.h.

◆ PointerCompressionIsEnabled()

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

Definition at line 120 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 169 of file v8-internal.h.

References kSmiValueSize.

Referenced by V8::Initialize().

◆ SmiValuesAre32Bits()

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

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

References kSmiValueSize.

Variable Documentation

◆ kApiDoubleSize

const int kApiDoubleSize = sizeof(double)

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

◆ kApiInt32Size

const int kApiInt32Size = sizeof(int32_t)

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

◆ kApiInt64Size

const int kApiInt64Size = sizeof(int64_t)

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

◆ kApiSizetSize

const int kApiSizetSize = sizeof(size_t)

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

◆ kApiSystemPointerSize

const int kApiSystemPointerSize = sizeof(void*)

Configuration of tagging scheme.

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

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

◆ kApiTaggedSize

const int kApiTaggedSize = kApiSystemPointerSize

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

Referenced by PointerCompressionIsEnabled().

◆ kExternalPointerTagMask

constexpr uint64_t kExternalPointerTagMask = 0xffff000000000000
constexpr

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

◆ kForwardingTag

const int kForwardingTag = 0

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

◆ kForwardingTagMask

const intptr_t kForwardingTagMask = (1 << kForwardingTagSize) - 1

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

◆ kForwardingTagSize

const int kForwardingTagSize = 2

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

◆ kHeapObjectTag

const int kHeapObjectTag = 1

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

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

◆ kHeapObjectTagMask

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

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

Referenced by Internals::HasHeapObjectTag().

◆ kHeapObjectTagSize

const int kHeapObjectTagSize = 2

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

◆ kIntptrAllBitsSet

constexpr intptr_t kIntptrAllBitsSet = intptr_t{-1}
constexpr

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

◆ kSmiMaxValue

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

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

◆ kSmiMinValue

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

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

◆ kSmiShiftSize

const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize

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

◆ kSmiTag

const int kSmiTag = 0

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

◆ kSmiTagMask

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

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

◆ kSmiTagSize

const int kSmiTagSize = 1

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

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

◆ kSmiValueSize

const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize

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

Referenced by SmiValuesAre31Bits(), and SmiValuesAre32Bits().

◆ kUintptrAllBitsSet

constexpr uintptr_t kUintptrAllBitsSet
constexpr
Initial value:
=
static_cast<uintptr_t>(kIntptrAllBitsSet)
constexpr intptr_t kIntptrAllBitsSet
Definition: v8-internal.h:62

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

◆ kWeakHeapObjectTag

const int kWeakHeapObjectTag = 3

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