v8 12.4.254 (node 22.4.1)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
Internals Class Reference

#include <v8-internal.h>

Static Public Member Functions

static V8_EXPORT void CheckInitializedImpl (v8::Isolate *isolate)
 
static V8_INLINE void CheckInitialized (v8::Isolate *isolate)
 
static V8_INLINE constexpr bool HasHeapObjectTag (Address value)
 
static V8_INLINE constexpr int SmiValue (Address value)
 
static V8_INLINE constexpr Address IntToSmi (int value)
 
static V8_INLINE constexpr bool IsValidSmi (intptr_t value)
 
static V8_INLINE int GetInstanceType (Address obj)
 
static V8_INLINE Address LoadMap (Address obj)
 
static V8_INLINE int GetOddballKind (Address obj)
 
static V8_INLINE bool IsExternalTwoByteString (int instance_type)
 
static V8_INLINE constexpr bool CanHaveInternalField (int instance_type)
 
static V8_INLINE uint8_t GetNodeFlag (Address *obj, int shift)
 
static V8_INLINE void UpdateNodeFlag (Address *obj, bool value, int shift)
 
static V8_INLINE uint8_t GetNodeState (Address *obj)
 
static V8_INLINE void UpdateNodeState (Address *obj, uint8_t value)
 
static V8_INLINE void SetEmbedderData (v8::Isolate *isolate, uint32_t slot, void *data)
 
static V8_INLINE void * GetEmbedderData (const v8::Isolate *isolate, uint32_t slot)
 
static V8_INLINE void IncrementLongTasksStatsCounter (v8::Isolate *isolate)
 
static V8_INLINE AddressGetRootSlot (v8::Isolate *isolate, int index)
 
static V8_INLINE Address GetRoot (v8::Isolate *isolate, int index)
 
template<typename T >
static V8_INLINEReadRawField (Address heap_object_ptr, int offset)
 
static V8_INLINE Address ReadTaggedPointerField (Address heap_object_ptr, int offset)
 
static V8_INLINE Address ReadTaggedSignedField (Address heap_object_ptr, int offset)
 
static V8_INLINE v8::IsolateGetIsolateForSandbox (Address obj)
 
template<ExternalPointerTag tag>
static V8_INLINE Address ReadExternalPointerField (v8::Isolate *isolate, Address heap_object_ptr, int offset)
 

Static Public Attributes

static const int kHeapObjectMapOffset = 0
 
static const int kMapInstanceTypeOffset = 1 * kApiTaggedSize + kApiInt32Size
 
static const int kStringResourceOffset
 
static const int kOddballKindOffset = 4 * kApiTaggedSize + kApiDoubleSize
 
static const int kJSObjectHeaderSize = 3 * kApiTaggedSize
 
static const int kFixedArrayHeaderSize = 2 * kApiTaggedSize
 
static const int kEmbedderDataArrayHeaderSize = 2 * kApiTaggedSize
 
static const int kEmbedderDataSlotSize = kApiSystemPointerSize
 
static const int kEmbedderDataSlotExternalPointerOffset = 0
 
static const int kNativeContextEmbedderDataOffset = 6 * kApiTaggedSize
 
static const int kStringRepresentationAndEncodingMask = 0x0f
 
static const int kStringEncodingMask = 0x8
 
static const int kExternalTwoByteRepresentationTag = 0x02
 
static const int kExternalOneByteRepresentationTag = 0x0a
 
static const uint32_t kNumIsolateDataSlots = 4
 
static const int kStackGuardSize = 8 * kApiSystemPointerSize
 
static const int kNumberOfBooleanFlags = 6
 
static const int kErrorMessageParamSize = 1
 
static const int kTablesAlignmentPaddingSize = 1
 
static const int kBuiltinTier0EntryTableSize = 7 * kApiSystemPointerSize
 
static const int kBuiltinTier0TableSize = 7 * kApiSystemPointerSize
 
static const int kLinearAllocationAreaSize = 3 * kApiSystemPointerSize
 
static const int kThreadLocalTopSize = 30 * kApiSystemPointerSize
 
static const int kHandleScopeDataSize
 
static const int kExternalPointerTableBasePointerOffset = 0
 
static const int kExternalPointerTableSize = 2 * kApiSystemPointerSize
 
static const int kTrustedPointerTableSize = 2 * kApiSystemPointerSize
 
static const int kTrustedPointerTableBasePointerOffset = 0
 
static const int kIsolateCageBaseOffset = 0
 
static const int kIsolateStackGuardOffset
 
static const int kVariousBooleanFlagsOffset
 
static const int kErrorMessageParamOffset
 
static const int kBuiltinTier0EntryTableOffset
 
static const int kBuiltinTier0TableOffset
 
static const int kNewAllocationInfoOffset
 
static const int kOldAllocationInfoOffset
 
static const int kFastCCallAlignmentPaddingSize
 
static const int kIsolateFastCCallCallerFpOffset
 
static const int kIsolateFastCCallCallerPcOffset
 
static const int kIsolateFastApiCallTargetOffset
 
static const int kIsolateLongTaskStatsCounterOffset
 
static const int kIsolateThreadLocalTopOffset
 
static const int kIsolateHandleScopeDataOffset
 
static const int kIsolateEmbedderDataOffset
 
static const int kIsolateApiCallbackThunkArgumentOffset
 
static const int kContinuationPreservedEmbedderDataOffset
 
static const int kWasm64OOBOffsetAlignmentPaddingSize = 0
 
static const int kWasm64OOBOffsetOffset
 
static const int kIsolateRootsOffset
 
static const int kUndefinedValueRootIndex = 4
 
static const int kTheHoleValueRootIndex = 5
 
static const int kNullValueRootIndex = 6
 
static const int kTrueValueRootIndex = 7
 
static const int kFalseValueRootIndex = 8
 
static const int kEmptyStringRootIndex = 9
 
static const int kNodeClassIdOffset = 1 * kApiSystemPointerSize
 
static const int kNodeFlagsOffset = 1 * kApiSystemPointerSize + 3
 
static const int kNodeStateMask = 0x3
 
static const int kNodeStateIsWeakValue = 2
 
static const int kFirstNonstringType = 0x80
 
static const int kOddballType = 0x83
 
static const int kForeignType = 0xcc
 
static const int kJSSpecialApiObjectType = 0x410
 
static const int kJSObjectType = 0x421
 
static const int kFirstJSApiObjectType = 0x422
 
static const int kLastJSApiObjectType = 0x80A
 
static const int kFirstEmbedderJSApiObjectType = 0
 
static const int kLastEmbedderJSApiObjectType
 
static const int kUndefinedOddballKind = 4
 
static const int kNullOddballKind = 3
 
static const int kThrowOnError = 0
 
static const int kDontThrow = 1
 
static const int kInferShouldThrowMode = 2
 
static constexpr int kExternalAllocationSoftLimit = 64 * 1024 * 1024
 

Detailed Description

This class exports constants and functionality from within v8 that is necessary to implement inline functions in the v8 api. Don't depend on functions and constants defined here.

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

Member Function Documentation

◆ CanHaveInternalField()

static V8_INLINE constexpr bool CanHaveInternalField ( int  instance_type)
inlinestaticconstexpr

◆ CheckInitialized()

static V8_INLINE void CheckInitialized ( v8::Isolate isolate)
inlinestatic

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

References Internals::CheckInitializedImpl().

◆ CheckInitializedImpl()

static V8_EXPORT void CheckInitializedImpl ( v8::Isolate isolate)
static

◆ GetEmbedderData()

static V8_INLINE void * GetEmbedderData ( const v8::Isolate isolate,
uint32_t  slot 
)
inlinestatic

◆ GetInstanceType()

static V8_INLINE int GetInstanceType ( Address  obj)
inlinestatic

◆ GetIsolateForSandbox()

static V8_INLINE v8::Isolate * GetIsolateForSandbox ( Address  obj)
inlinestatic

◆ GetNodeFlag()

static V8_INLINE uint8_t GetNodeFlag ( Address obj,
int  shift 
)
inlinestatic

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

References Internals::kNodeFlagsOffset.

◆ GetNodeState()

static V8_INLINE uint8_t GetNodeState ( Address obj)
inlinestatic

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

References Internals::kNodeFlagsOffset, and Internals::kNodeStateMask.

◆ GetOddballKind()

static V8_INLINE int GetOddballKind ( Address  obj)
inlinestatic

◆ GetRoot()

static V8_INLINE Address GetRoot ( v8::Isolate isolate,
int  index 
)
inlinestatic

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

References Internals::GetRootSlot(), and Internals::kIsolateCageBaseOffset.

◆ GetRootSlot()

static V8_INLINE Address * GetRootSlot ( v8::Isolate isolate,
int  index 
)
inlinestatic

◆ HasHeapObjectTag()

static V8_INLINE constexpr bool HasHeapObjectTag ( Address  value)
inlinestaticconstexpr

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

References v8::internal::kHeapObjectTag, and v8::internal::kHeapObjectTagMask.

Referenced by Internals::LoadMap().

◆ IncrementLongTasksStatsCounter()

static V8_INLINE void IncrementLongTasksStatsCounter ( v8::Isolate isolate)
inlinestatic

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

References Internals::kIsolateLongTaskStatsCounterOffset.

Referenced by LongTaskStats::Reset().

◆ IntToSmi()

static V8_INLINE constexpr Address IntToSmi ( int  value)
inlinestaticconstexpr

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

◆ IsExternalTwoByteString()

static V8_INLINE bool IsExternalTwoByteString ( int  instance_type)
inlinestatic

◆ IsValidSmi()

static V8_INLINE constexpr bool IsValidSmi ( intptr_t  value)
inlinestaticconstexpr

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

◆ LoadMap()

static V8_INLINE Address LoadMap ( Address  obj)
inlinestatic

◆ ReadExternalPointerField()

template<ExternalPointerTag tag>
static V8_INLINE Address ReadExternalPointerField ( v8::Isolate isolate,
Address  heap_object_ptr,
int  offset 
)
inlinestatic

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

References v8::internal::kExternalPointerNullTag.

◆ ReadRawField()

template<typename T >
static V8_INLINE T ReadRawField ( Address  heap_object_ptr,
int  offset 
)
inlinestatic

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

References v8::internal::kApiTaggedSize, and v8::internal::kHeapObjectTag.

◆ ReadTaggedPointerField()

static V8_INLINE Address ReadTaggedPointerField ( Address  heap_object_ptr,
int  offset 
)
inlinestatic

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

Referenced by Internals::GetInstanceType(), and Internals::LoadMap().

◆ ReadTaggedSignedField()

static V8_INLINE Address ReadTaggedSignedField ( Address  heap_object_ptr,
int  offset 
)
inlinestatic

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

Referenced by Internals::GetOddballKind().

◆ SetEmbedderData()

static V8_INLINE void SetEmbedderData ( v8::Isolate isolate,
uint32_t  slot,
void *  data 
)
inlinestatic

◆ SmiValue()

static V8_INLINE constexpr int SmiValue ( Address  value)
inlinestaticconstexpr

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

Referenced by Internals::GetOddballKind().

◆ UpdateNodeFlag()

static V8_INLINE void UpdateNodeFlag ( Address obj,
bool  value,
int  shift 
)
inlinestatic

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

References Internals::kNodeFlagsOffset.

◆ UpdateNodeState()

static V8_INLINE void UpdateNodeState ( Address obj,
uint8_t  value 
)
inlinestatic

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

References Internals::kNodeFlagsOffset.

Field Documentation

◆ kBuiltinTier0EntryTableOffset

const int kBuiltinTier0EntryTableOffset
static
Initial value:

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

◆ kBuiltinTier0EntryTableSize

const int kBuiltinTier0EntryTableSize = 7 * kApiSystemPointerSize
static

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

◆ kBuiltinTier0TableOffset

const int kBuiltinTier0TableOffset
static
Initial value:

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

◆ kBuiltinTier0TableSize

const int kBuiltinTier0TableSize = 7 * kApiSystemPointerSize
static

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

◆ kContinuationPreservedEmbedderDataOffset

const int kContinuationPreservedEmbedderDataOffset
static
Initial value:

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

◆ kDontThrow

const int kDontThrow = 1
static

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

◆ kEmbedderDataArrayHeaderSize

const int kEmbedderDataArrayHeaderSize = 2 * kApiTaggedSize
static

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

◆ kEmbedderDataSlotExternalPointerOffset

const int kEmbedderDataSlotExternalPointerOffset = 0
static

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

◆ kEmbedderDataSlotSize

const int kEmbedderDataSlotSize = kApiSystemPointerSize
static

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

◆ kEmptyStringRootIndex

const int kEmptyStringRootIndex = 9
static

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

◆ kErrorMessageParamOffset

const int kErrorMessageParamOffset
static
Initial value:

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

◆ kErrorMessageParamSize

const int kErrorMessageParamSize = 1
static

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

◆ kExternalAllocationSoftLimit

constexpr int kExternalAllocationSoftLimit = 64 * 1024 * 1024
staticconstexpr

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

◆ kExternalOneByteRepresentationTag

const int kExternalOneByteRepresentationTag = 0x0a
static

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

◆ kExternalPointerTableBasePointerOffset

const int kExternalPointerTableBasePointerOffset = 0
static

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

◆ kExternalPointerTableSize

const int kExternalPointerTableSize = 2 * kApiSystemPointerSize
static

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

◆ kExternalTwoByteRepresentationTag

const int kExternalTwoByteRepresentationTag = 0x02
static

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

Referenced by Internals::IsExternalTwoByteString().

◆ kFalseValueRootIndex

const int kFalseValueRootIndex = 8
static

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

◆ kFastCCallAlignmentPaddingSize

const int kFastCCallAlignmentPaddingSize
static
Initial value:

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

◆ kFirstEmbedderJSApiObjectType

const int kFirstEmbedderJSApiObjectType = 0
static

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

◆ kFirstJSApiObjectType

const int kFirstJSApiObjectType = 0x422
static

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

Referenced by Internals::CanHaveInternalField().

◆ kFirstNonstringType

const int kFirstNonstringType = 0x80
static

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

◆ kFixedArrayHeaderSize

const int kFixedArrayHeaderSize = 2 * kApiTaggedSize
static

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

◆ kForeignType

const int kForeignType = 0xcc
static

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

◆ kHandleScopeDataSize

const int kHandleScopeDataSize
static
Initial value:

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

◆ kHeapObjectMapOffset

const int kHeapObjectMapOffset = 0
static

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

Referenced by Internals::GetInstanceType(), and Internals::LoadMap().

◆ kInferShouldThrowMode

const int kInferShouldThrowMode = 2
static

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

◆ kIsolateApiCallbackThunkArgumentOffset

const int kIsolateApiCallbackThunkArgumentOffset
static
Initial value:

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

◆ kIsolateCageBaseOffset

const int kIsolateCageBaseOffset = 0
static

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

Referenced by Internals::GetRoot().

◆ kIsolateEmbedderDataOffset

const int kIsolateEmbedderDataOffset
static
Initial value:

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

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

◆ kIsolateFastApiCallTargetOffset

const int kIsolateFastApiCallTargetOffset
static
Initial value:

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

◆ kIsolateFastCCallCallerFpOffset

const int kIsolateFastCCallCallerFpOffset
static
Initial value:

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

◆ kIsolateFastCCallCallerPcOffset

const int kIsolateFastCCallCallerPcOffset
static
Initial value:

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

◆ kIsolateHandleScopeDataOffset

const int kIsolateHandleScopeDataOffset
static
Initial value:

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

◆ kIsolateLongTaskStatsCounterOffset

const int kIsolateLongTaskStatsCounterOffset
static
Initial value:

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

Referenced by Internals::IncrementLongTasksStatsCounter().

◆ kIsolateRootsOffset

const int kIsolateRootsOffset
static
Initial value:
=
kWasm64OOBOffsetOffset + sizeof(int64_t)
static const int kWasm64OOBOffsetOffset

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

Referenced by Internals::GetRootSlot().

◆ kIsolateStackGuardOffset

const int kIsolateStackGuardOffset
static
Initial value:

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

◆ kIsolateThreadLocalTopOffset

const int kIsolateThreadLocalTopOffset
static
Initial value:

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

◆ kJSObjectHeaderSize

const int kJSObjectHeaderSize = 3 * kApiTaggedSize
static

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

◆ kJSObjectType

const int kJSObjectType = 0x421
static

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

Referenced by Internals::CanHaveInternalField().

◆ kJSSpecialApiObjectType

const int kJSSpecialApiObjectType = 0x410
static

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

Referenced by Internals::CanHaveInternalField().

◆ kLastEmbedderJSApiObjectType

const int kLastEmbedderJSApiObjectType
static
Initial value:

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

◆ kLastJSApiObjectType

const int kLastJSApiObjectType = 0x80A
static

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

Referenced by Internals::CanHaveInternalField().

◆ kLinearAllocationAreaSize

const int kLinearAllocationAreaSize = 3 * kApiSystemPointerSize
static

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

◆ kMapInstanceTypeOffset

const int kMapInstanceTypeOffset = 1 * kApiTaggedSize + kApiInt32Size
static

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

Referenced by Internals::GetInstanceType().

◆ kNativeContextEmbedderDataOffset

const int kNativeContextEmbedderDataOffset = 6 * kApiTaggedSize
static

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

◆ kNewAllocationInfoOffset

const int kNewAllocationInfoOffset
static
Initial value:

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

◆ kNodeClassIdOffset

const int kNodeClassIdOffset = 1 * kApiSystemPointerSize
static

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

◆ kNodeFlagsOffset

const int kNodeFlagsOffset = 1 * kApiSystemPointerSize + 3
static

◆ kNodeStateIsWeakValue

const int kNodeStateIsWeakValue = 2
static

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

◆ kNodeStateMask

const int kNodeStateMask = 0x3
static

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

Referenced by Internals::GetNodeState().

◆ kNullOddballKind

const int kNullOddballKind = 3
static

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

◆ kNullValueRootIndex

const int kNullValueRootIndex = 6
static

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

◆ kNumberOfBooleanFlags

const int kNumberOfBooleanFlags = 6
static

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

◆ kNumIsolateDataSlots

const uint32_t kNumIsolateDataSlots = 4
static

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

◆ kOddballKindOffset

const int kOddballKindOffset = 4 * kApiTaggedSize + kApiDoubleSize
static

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

Referenced by Internals::GetOddballKind().

◆ kOddballType

const int kOddballType = 0x83
static

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

◆ kOldAllocationInfoOffset

const int kOldAllocationInfoOffset
static
Initial value:

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

◆ kStackGuardSize

const int kStackGuardSize = 8 * kApiSystemPointerSize
static

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

◆ kStringEncodingMask

const int kStringEncodingMask = 0x8
static

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

◆ kStringRepresentationAndEncodingMask

const int kStringRepresentationAndEncodingMask = 0x0f
static

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

Referenced by Internals::IsExternalTwoByteString().

◆ kStringResourceOffset

const int kStringResourceOffset
static
Initial value:
=
const int kApiTaggedSize

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

◆ kTablesAlignmentPaddingSize

const int kTablesAlignmentPaddingSize = 1
static

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

◆ kTheHoleValueRootIndex

const int kTheHoleValueRootIndex = 5
static

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

◆ kThreadLocalTopSize

const int kThreadLocalTopSize = 30 * kApiSystemPointerSize
static

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

◆ kThrowOnError

const int kThrowOnError = 0
static

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

◆ kTrueValueRootIndex

const int kTrueValueRootIndex = 7
static

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

◆ kTrustedPointerTableBasePointerOffset

const int kTrustedPointerTableBasePointerOffset = 0
static

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

◆ kTrustedPointerTableSize

const int kTrustedPointerTableSize = 2 * kApiSystemPointerSize
static

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

◆ kUndefinedOddballKind

const int kUndefinedOddballKind = 4
static

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

◆ kUndefinedValueRootIndex

const int kUndefinedValueRootIndex = 4
static

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

◆ kVariousBooleanFlagsOffset

const int kVariousBooleanFlagsOffset
static
Initial value:

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

◆ kWasm64OOBOffsetAlignmentPaddingSize

const int kWasm64OOBOffsetAlignmentPaddingSize = 0
static

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

◆ kWasm64OOBOffsetOffset

const int kWasm64OOBOffsetOffset
static
Initial value:

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


The documentation for this class was generated from the following file: