v8  10.1.124 (node 18.2.0)
V8 is Google's open source JavaScript engine
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 bool HasHeapObjectTag (const internal::Address value)
 
static V8_INLINE int SmiValue (const internal::Address value)
 
static constexpr V8_INLINE internal::Address IntToSmi (int value)
 
static constexpr V8_INLINE bool IsValidSmi (intptr_t value)
 
static V8_INLINE int GetInstanceType (const internal::Address obj)
 
static V8_INLINE int GetOddballKind (const internal::Address obj)
 
static V8_INLINE bool IsExternalTwoByteString (int instance_type)
 
static V8_INLINE uint8_t GetNodeFlag (internal::Address *obj, int shift)
 
static V8_INLINE void UpdateNodeFlag (internal::Address *obj, bool value, int shift)
 
static V8_INLINE uint8_t GetNodeState (internal::Address *obj)
 
static V8_INLINE void UpdateNodeState (internal::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 internal::AddressGetRoot (v8::Isolate *isolate, int index)
 
template<typename T >
static V8_INLINEReadRawField (internal::Address heap_object_ptr, int offset)
 
static V8_INLINE internal::Address ReadTaggedPointerField (internal::Address heap_object_ptr, int offset)
 
static V8_INLINE internal::Address ReadTaggedSignedField (internal::Address heap_object_ptr, int offset)
 
static V8_INLINE internal::Isolate * GetIsolateForSandbox (internal::Address obj)
 
static V8_INLINE Address DecodeExternalPointer (const Isolate *isolate, ExternalPointer_t encoded_pointer, ExternalPointerTag tag)
 
static V8_INLINE internal::Address ReadExternalPointerField (internal::Isolate *isolate, internal::Address heap_object_ptr, int offset, ExternalPointerTag tag)
 

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 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 = 7 * kApiSystemPointerSize
 
static const int kBuiltinTier0EntryTableSize = 13 * kApiSystemPointerSize
 
static const int kBuiltinTier0TableSize = 13 * kApiSystemPointerSize
 
static const int kIsolateCageBaseOffset = 0
 
static const int kIsolateStackGuardOffset
 
static const int kBuiltinTier0EntryTableOffset
 
static const int kBuiltinTier0TableOffset
 
static const int kIsolateEmbedderDataOffset
 
static const int kIsolateFastCCallCallerFpOffset
 
static const int kIsolateFastCCallCallerPcOffset
 
static const int kIsolateFastApiCallTargetOffset
 
static const int kIsolateLongTaskStatsCounterOffset
 
static const int kIsolateRootsOffset
 
static const int kExternalPointerTableBufferOffset = 0
 
static const int kExternalPointerTableCapacityOffset
 
static const int kExternalPointerTableFreelistHeadOffset
 
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 = 0x7
 
static const int kNodeStateIsWeakValue = 2
 
static const int kNodeStateIsPendingValue = 3
 
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 kUndefinedOddballKind = 5
 
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 335 of file v8-internal.h.

Member Function Documentation

◆ CheckInitialized()

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

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

Referenced by String::Empty().

◆ CheckInitializedImpl()

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

◆ DecodeExternalPointer()

static V8_INLINE Address DecodeExternalPointer ( const Isolate isolate,
ExternalPointer_t  encoded_pointer,
ExternalPointerTag  tag 
)
inlinestatic

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

◆ GetEmbedderData()

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

◆ GetInstanceType()

◆ GetIsolateForSandbox()

◆ GetNodeFlag()

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

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

References Internals::kNodeFlagsOffset.

◆ GetNodeState()

static V8_INLINE uint8_t GetNodeState ( internal::Address obj)
inlinestatic

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

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

Referenced by PersistentBase< T >::IsWeak().

◆ GetOddballKind()

static V8_INLINE int GetOddballKind ( const internal::Address  obj)
inlinestatic

◆ GetRoot()

◆ HasHeapObjectTag()

static V8_INLINE bool HasHeapObjectTag ( const internal::Address  value)
inlinestatic

◆ IncrementLongTasksStatsCounter()

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

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

References Internals::kIsolateLongTaskStatsCounterOffset.

Referenced by LongTaskStats::Reset().

◆ IntToSmi()

static constexpr V8_INLINE internal::Address IntToSmi ( int  value)
inlinestaticconstexpr

◆ IsExternalTwoByteString()

static V8_INLINE bool IsExternalTwoByteString ( int  instance_type)
inlinestatic

◆ IsValidSmi()

static constexpr V8_INLINE bool IsValidSmi ( intptr_t  value)
inlinestaticconstexpr

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

References SmiTagging< 8 >::IsValidSmi().

Referenced by ReturnValue< T >::Set().

◆ ReadExternalPointerField()

static V8_INLINE internal::Address ReadExternalPointerField ( internal::Isolate *  isolate,
internal::Address  heap_object_ptr,
int  offset,
ExternalPointerTag  tag 
)
inlinestatic

◆ ReadRawField()

◆ ReadTaggedPointerField()

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

◆ ReadTaggedSignedField()

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

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

References Internals::ReadRawField().

Referenced by Internals::GetOddballKind().

◆ SetEmbedderData()

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

◆ SmiValue()

static V8_INLINE int SmiValue ( const internal::Address  value)
inlinestatic

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

References SmiTagging< 8 >::SmiToInt().

Referenced by Internals::GetOddballKind().

◆ UpdateNodeFlag()

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

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

References Internals::kNodeFlagsOffset.

◆ UpdateNodeState()

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

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

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

Field Documentation

◆ kBuiltinTier0EntryTableOffset

const int kBuiltinTier0EntryTableOffset
static
Initial value:

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

◆ kBuiltinTier0EntryTableSize

const int kBuiltinTier0EntryTableSize = 13 * kApiSystemPointerSize
static

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

◆ kBuiltinTier0TableOffset

const int kBuiltinTier0TableOffset
static
Initial value:

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

◆ kBuiltinTier0TableSize

const int kBuiltinTier0TableSize = 13 * kApiSystemPointerSize
static

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

◆ kDontThrow

const int kDontThrow = 1
static

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

Referenced by PropertyCallbackInfo< T >::ShouldThrowOnError().

◆ kEmbedderDataArrayHeaderSize

const int kEmbedderDataArrayHeaderSize = 2 * kApiTaggedSize
static

◆ kEmbedderDataSlotSize

◆ kEmptyStringRootIndex

const int kEmptyStringRootIndex = 9
static

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

Referenced by String::Empty(), and ReturnValue< T >::SetEmptyString().

◆ kExternalAllocationSoftLimit

constexpr int kExternalAllocationSoftLimit = 64 * 1024 * 1024
staticconstexpr

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

◆ kExternalOneByteRepresentationTag

const int kExternalOneByteRepresentationTag = 0x0a
static

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

Referenced by String::GetExternalStringResourceBase().

◆ kExternalPointerTableBufferOffset

const int kExternalPointerTableBufferOffset = 0
static

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

◆ kExternalPointerTableCapacityOffset

const int kExternalPointerTableCapacityOffset
static
Initial value:

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

◆ kExternalPointerTableFreelistHeadOffset

const int kExternalPointerTableFreelistHeadOffset
static
Initial value:

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

◆ kExternalTwoByteRepresentationTag

const int kExternalTwoByteRepresentationTag = 0x02
static

◆ kFalseValueRootIndex

const int kFalseValueRootIndex = 8
static

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

Referenced by ReturnValue< T >::Set().

◆ kFirstJSApiObjectType

const int kFirstJSApiObjectType = 0x422
static

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

◆ kFirstNonstringType

const int kFirstNonstringType = 0x80
static

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

◆ kFixedArrayHeaderSize

const int kFixedArrayHeaderSize = 2 * kApiTaggedSize
static

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

◆ kForeignType

const int kForeignType = 0xcc
static

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

◆ kHeapObjectMapOffset

const int kHeapObjectMapOffset = 0
static

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

Referenced by Internals::GetInstanceType().

◆ kInferShouldThrowMode

const int kInferShouldThrowMode = 2
static

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

Referenced by PropertyCallbackInfo< T >::ShouldThrowOnError().

◆ kIsolateCageBaseOffset

const int kIsolateCageBaseOffset = 0
static

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

◆ kIsolateEmbedderDataOffset

const int kIsolateEmbedderDataOffset
static
Initial value:

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

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

◆ kIsolateFastApiCallTargetOffset

const int kIsolateFastApiCallTargetOffset
static
Initial value:

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

◆ kIsolateFastCCallCallerFpOffset

const int kIsolateFastCCallCallerFpOffset
static
Initial value:

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

◆ kIsolateFastCCallCallerPcOffset

const int kIsolateFastCCallCallerPcOffset
static
Initial value:

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

◆ kIsolateLongTaskStatsCounterOffset

const int kIsolateLongTaskStatsCounterOffset
static
Initial value:

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

Referenced by Internals::IncrementLongTasksStatsCounter().

◆ kIsolateRootsOffset

const int kIsolateRootsOffset
static
Initial value:

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

Referenced by Internals::GetRoot().

◆ kIsolateStackGuardOffset

const int kIsolateStackGuardOffset
static
Initial value:

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

◆ kJSObjectHeaderSize

const int kJSObjectHeaderSize = 3 * kApiTaggedSize
static

◆ kJSObjectType

const int kJSObjectType = 0x421
static

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

◆ kJSSpecialApiObjectType

const int kJSSpecialApiObjectType = 0x410
static

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

◆ kLastJSApiObjectType

const int kLastJSApiObjectType = 0x80A
static

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

◆ kMapInstanceTypeOffset

const int kMapInstanceTypeOffset = 1 * kApiTaggedSize + kApiInt32Size
static

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

Referenced by Internals::GetInstanceType().

◆ kNativeContextEmbedderDataOffset

const int kNativeContextEmbedderDataOffset = 6 * kApiTaggedSize
static

◆ kNodeClassIdOffset

◆ kNodeFlagsOffset

const int kNodeFlagsOffset = 1 * kApiSystemPointerSize + 3
static

◆ kNodeStateIsPendingValue

const int kNodeStateIsPendingValue = 3
static

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

◆ kNodeStateIsWeakValue

const int kNodeStateIsWeakValue = 2
static

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

Referenced by PersistentBase< T >::IsWeak().

◆ kNodeStateMask

const int kNodeStateMask = 0x7
static

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

Referenced by Internals::GetNodeState(), and Internals::UpdateNodeState().

◆ kNullOddballKind

const int kNullOddballKind = 3
static

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

◆ kNullValueRootIndex

const int kNullValueRootIndex = 6
static

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

Referenced by ReturnValue< T >::SetNull().

◆ kNumIsolateDataSlots

const uint32_t kNumIsolateDataSlots = 4
static

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

Referenced by Isolate::GetNumberOfDataSlots().

◆ kOddballKindOffset

const int kOddballKindOffset = 4 * kApiTaggedSize + kApiDoubleSize
static

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

Referenced by Internals::GetOddballKind().

◆ kOddballType

const int kOddballType = 0x83
static

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

◆ kStackGuardSize

const int kStackGuardSize = 7 * kApiSystemPointerSize
static

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

◆ kStringEncodingMask

const int kStringEncodingMask = 0x8
static

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

Referenced by String::GetExternalStringResourceBase().

◆ kStringRepresentationAndEncodingMask

const int kStringRepresentationAndEncodingMask = 0x0f
static

◆ kStringResourceOffset

const int kStringResourceOffset
static
Initial value:
=
const int kApiTaggedSize
Definition: v8-internal.h:129

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

Referenced by String::GetExternalStringResource(), and String::GetExternalStringResourceBase().

◆ kTheHoleValueRootIndex

const int kTheHoleValueRootIndex = 5
static

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

Referenced by ReturnValue< T >::Get().

◆ kThrowOnError

const int kThrowOnError = 0
static

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

◆ kTrueValueRootIndex

const int kTrueValueRootIndex = 7
static

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

Referenced by ReturnValue< T >::Set().

◆ kUndefinedOddballKind

const int kUndefinedOddballKind = 5
static

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

◆ kUndefinedValueRootIndex

const int kUndefinedValueRootIndex = 4
static

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

Referenced by ReturnValue< T >::SetUndefined().


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