v8  10.1.124 (node 18.2.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  CFunctionBuilderWithFunction
 
class  CFunctionBuilder
 
struct  SmiTagging
 
struct  SmiTagging< 4 >
 
struct  SmiTagging< 8 >
 
class  Internals
 
struct  CastCheck
 
class  BackingStoreBase
 
class  CustomArguments
 

Typedefs

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

Enumerations

enum  ExternalPointerTag : uint64_t {
  kExternalPointerNullTag = MAKE_TAG(0b0000000000000000) , kExternalPointerFreeEntryTag = MAKE_TAG(0b0111111110000000) , kExternalStringResourceTag = MAKE_TAG(0b1000000011111111) , kExternalStringResourceDataTag = MAKE_TAG(0b1000000101111111) ,
  kForeignForeignAddressTag = MAKE_TAG(0b1000000110111111) , kNativeContextMicrotaskQueueTag = MAKE_TAG(0b1000000111011111) , kEmbedderDataSlotPayloadTag = MAKE_TAG(0b1000000111101111) , kCodeEntryPointTag = MAKE_TAG(0b1000000111110111) ,
  kExternalObjectValueTag = MAKE_TAG(0b1000000111111011)
}
 
enum class  GlobalHandleDestructionMode { kWithDestructor , kWithoutDestructor }
 
enum class  GlobalHandleStoreMode { kInitializingStore , kAssigningStore }
 

Functions

constexpr bool PointerCompressionIsEnabled ()
 
constexpr bool SmiValuesAre31Bits ()
 
constexpr bool SmiValuesAre32Bits ()
 
constexpr bool SandboxIsEnabled ()
 
constexpr bool SandboxedExternalPointersAreEnabled ()
 
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)
 
V8_EXPORT internal::AddressGlobalizeTracedReference (internal::Isolate *isolate, internal::Address *handle, internal::Address *slot, GlobalHandleDestructionMode destruction_mode, GlobalHandleStoreMode store_mode)
 
V8_EXPORT void MoveTracedGlobalReference (internal::Address **from, internal::Address **to)
 
V8_EXPORT void CopyTracedGlobalReference (const internal::Address *const *from, internal::Address **to)
 
V8_EXPORT void DisposeTracedGlobal (internal::Address *global_handle)
 
V8_EXPORT void SetFinalizationCallbackTraced (internal::Address *location, void *parameter, WeakCallbackInfo< void >::Callback callback)
 

Variables

constexpr int KB = 1024
 
constexpr int MB = KB * 1024
 
constexpr int GB = MB * 1024
 
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
 
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)
 
constexpr uint64_t kExternalPointerTagMask = 0xffff000000000000
 
constexpr uint64_t kExternalPointerTagShift = 48
 
constexpr int kGarbageCollectionReasonMaxValue = 25
 

Typedef Documentation

◆ Address

typedef uintptr_t Address

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

◆ ExternalPointer_t

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

◆ PlatformSmiTagging

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

◆ SandboxedPointer_t

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

Enumeration Type Documentation

◆ ExternalPointerTag

enum ExternalPointerTag : uint64_t
Enumerator
kExternalPointerNullTag 
kExternalPointerFreeEntryTag 
kExternalStringResourceTag 
kExternalStringResourceDataTag 
kForeignForeignAddressTag 
kNativeContextMicrotaskQueueTag 
kEmbedderDataSlotPayloadTag 
kCodeEntryPointTag 
kExternalObjectValueTag 

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

◆ GlobalHandleDestructionMode

Enumerator
kWithDestructor 
kWithoutDestructor 

Definition at line 30 of file v8-traced-handle.h.

◆ GlobalHandleStoreMode

enum GlobalHandleStoreMode
strong
Enumerator
kInitializingStore 
kAssigningStore 

Definition at line 32 of file v8-traced-handle.h.

Function Documentation

◆ CanHaveInternalField()

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

◆ CopyTracedGlobalReference()

V8_EXPORT void v8::internal::CopyTracedGlobalReference ( const internal::Address *const *  from,
internal::Address **  to 
)

◆ DecodeExternalPointerImpl()

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

◆ DisposeTracedGlobal()

V8_EXPORT void v8::internal::DisposeTracedGlobal ( internal::Address global_handle)

◆ GlobalizeTracedReference()

V8_EXPORT internal::Address* v8::internal::GlobalizeTracedReference ( internal::Isolate *  isolate,
internal::Address handle,
internal::Address slot,
GlobalHandleDestructionMode  destruction_mode,
GlobalHandleStoreMode  store_mode 
)

◆ IsolateFromNeverReadOnlySpaceObject()

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

◆ MoveTracedGlobalReference()

V8_EXPORT void v8::internal::MoveTracedGlobalReference ( internal::Address **  from,
internal::Address **  to 
)

◆ PerformCastCheck()

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

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

◆ PointerCompressionIsEnabled()

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

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

References kApiSystemPointerSize, and kApiTaggedSize.

Referenced by V8::Initialize().

◆ SandboxedExternalPointersAreEnabled()

constexpr bool v8::internal::SandboxedExternalPointersAreEnabled ( )
constexpr

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

Referenced by V8::Initialize().

◆ SandboxIsEnabled()

constexpr bool v8::internal::SandboxIsEnabled ( )
constexpr

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

Referenced by V8::Initialize().

◆ SetFinalizationCallbackTraced()

V8_EXPORT void v8::internal::SetFinalizationCallbackTraced ( internal::Address location,
void *  parameter,
WeakCallbackInfo< void >::Callback  callback 
)

◆ ShouldThrowOnError()

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

◆ SmiValuesAre31Bits()

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

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

References kSmiValueSize.

Referenced by V8::Initialize().

◆ SmiValuesAre32Bits()

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

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

References kSmiValueSize.

Variable Documentation

◆ GB

constexpr int GB = MB * 1024
constexpr

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

◆ kApiDoubleSize

const int kApiDoubleSize = sizeof(double)

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

◆ kApiInt32Size

const int kApiInt32Size = sizeof(int32_t)

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

◆ kApiInt64Size

const int kApiInt64Size = sizeof(int64_t)

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

◆ kApiSizetSize

const int kApiSizetSize = sizeof(size_t)

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

◆ kApiSystemPointerSize

const int kApiSystemPointerSize = sizeof(void*)

Configuration of tagging scheme.

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

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

◆ kApiTaggedSize

const int kApiTaggedSize = kApiSystemPointerSize

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

Referenced by PointerCompressionIsEnabled().

◆ KB

constexpr int KB = 1024
constexpr

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

◆ kExternalPointerTagMask

constexpr uint64_t kExternalPointerTagMask = 0xffff000000000000
constexpr

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

◆ kExternalPointerTagShift

constexpr uint64_t kExternalPointerTagShift = 48
constexpr

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

◆ kForwardingTag

const int kForwardingTag = 0

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

◆ kForwardingTagMask

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

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

◆ kForwardingTagSize

const int kForwardingTagSize = 2

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

◆ kGarbageCollectionReasonMaxValue

constexpr int kGarbageCollectionReasonMaxValue = 25
constexpr

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

◆ kHeapObjectTag

const int kHeapObjectTag = 1

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

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

◆ kHeapObjectTagMask

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

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

Referenced by Internals::HasHeapObjectTag().

◆ kHeapObjectTagSize

const int kHeapObjectTagSize = 2

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

◆ kIntptrAllBitsSet

constexpr intptr_t kIntptrAllBitsSet = intptr_t{-1}
constexpr

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

◆ kSmiMaxValue

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

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

◆ kSmiMinValue

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

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

◆ kSmiShiftSize

const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize

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

◆ kSmiTag

const int kSmiTag = 0

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

◆ kSmiTagMask

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

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

◆ kSmiTagSize

const int kSmiTagSize = 1

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

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

◆ kSmiValueSize

const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize

Definition at line 145 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:69

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

◆ kWeakHeapObjectTag

const int kWeakHeapObjectTag = 3

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

◆ MB

constexpr int MB = KB * 1024
constexpr

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