v8 11.3.244 (node 20.3.0)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
v8::internal Namespace Reference

Namespaces

namespace  wasm
 

Data Structures

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

Typedefs

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

Enumerations

enum  ExternalPointerTag : uint64_t { kExternalPointerNullTag = MAKE_TAG(0, 0b00000000) , kAnyExternalPointerTag = MAKE_TAG(1, 0b11111111) , kExternalPointerFreeEntryTag = MAKE_TAG(0, 0b11111111) , kExternalPointerEvacuationEntryTag = MAKE_TAG(1, 0b11100111) }
 
enum class  GlobalHandleStoreMode { kInitializingStore , kAssigningStore }
 

Functions

constexpr bool PointerCompressionIsEnabled ()
 
constexpr bool SmiValuesAre31Bits ()
 
constexpr bool SmiValuesAre32Bits ()
 
constexpr bool Is64 ()
 
constexpr bool SandboxIsEnabled ()
 
V8_EXPORT internal::Isolate * IsolateFromNeverReadOnlySpaceObject (Address obj)
 
V8_EXPORT bool ShouldThrowOnError (internal::Isolate *isolate)
 
template<class T >
V8_INLINE void PerformCastCheck (T *data)
 
V8_EXPORT internal::AddressGlobalizeTracedReference (internal::Isolate *isolate, internal::Address *handle, internal::Address *slot, GlobalHandleStoreMode store_mode)
 
V8_EXPORT void MoveTracedReference (internal::Address **from, internal::Address **to)
 
V8_EXPORT void CopyTracedReference (const internal::Address *const *from, internal::Address **to)
 
V8_EXPORT void DisposeTracedReference (internal::Address *global_handle)
 

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 intptr_t kHeapObjectReferenceTagMask = 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 kExternalPointerMarkBit = 1ULL << 62
 
constexpr uint64_t kExternalPointerTagMask = 0x40ff000000000000
 
constexpr uint64_t kExternalPointerTagShift = 48
 
constexpr uint64_t kAllExternalPointerTypeTags []
 
constexpr int kGarbageCollectionReasonMaxValue = 27
 

Typedef Documentation

◆ Address

typedef uintptr_t Address

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

◆ ExternalPointer_t

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

◆ ExternalPointerHandle

using ExternalPointerHandle = uint32_t

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

◆ PlatformSmiTagging

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

◆ SandboxedPointer_t

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

Enumeration Type Documentation

◆ ExternalPointerTag

enum ExternalPointerTag : uint64_t
Enumerator
kExternalPointerNullTag 
kAnyExternalPointerTag 
kExternalPointerFreeEntryTag 
kExternalPointerEvacuationEntryTag 

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

◆ GlobalHandleStoreMode

enum class GlobalHandleStoreMode
strong
Enumerator
kInitializingStore 
kAssigningStore 

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

Function Documentation

◆ CopyTracedReference()

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

◆ DisposeTracedReference()

V8_EXPORT void DisposeTracedReference ( internal::Address global_handle)

◆ GlobalizeTracedReference()

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

◆ Is64()

constexpr bool Is64 ( )
constexpr

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

References kApiSystemPointerSize.

◆ IsolateFromNeverReadOnlySpaceObject()

V8_EXPORT internal::Isolate * IsolateFromNeverReadOnlySpaceObject ( Address  obj)

◆ MoveTracedReference()

V8_EXPORT void MoveTracedReference ( internal::Address **  from,
internal::Address **  to 
)

◆ PerformCastCheck()

template<class T >
V8_INLINE void PerformCastCheck ( T *  data)

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

Referenced by Context::GetDataFromSnapshotOnce().

◆ PointerCompressionIsEnabled()

constexpr bool PointerCompressionIsEnabled ( )
constexpr

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

References kApiSystemPointerSize, and kApiTaggedSize.

◆ SandboxIsEnabled()

constexpr bool SandboxIsEnabled ( )
constexpr

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

◆ ShouldThrowOnError()

V8_EXPORT bool ShouldThrowOnError ( internal::Isolate *  isolate)

◆ SmiValuesAre31Bits()

constexpr bool SmiValuesAre31Bits ( )
constexpr

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

References kSmiValueSize.

◆ SmiValuesAre32Bits()

constexpr bool SmiValuesAre32Bits ( )
constexpr

Definition at line 150 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.

◆ kAllExternalPointerTypeTags

constexpr uint64_t kAllExternalPointerTypeTags[]
constexpr
Initial value:
= {
0b00001111, 0b00010111, 0b00011011, 0b00011101, 0b00011110, 0b00100111,
0b00101011, 0b00101101, 0b00101110, 0b00110011, 0b00110101, 0b00110110,
0b00111001, 0b00111010, 0b00111100, 0b01000111, 0b01001011, 0b01001101,
0b01001110, 0b01010011, 0b01010101, 0b01010110, 0b01011001, 0b01011010,
0b01011100, 0b01100011, 0b01100101, 0b01100110, 0b01101001, 0b01101010,
0b01101100, 0b01110001, 0b01110010, 0b01110100, 0b01111000, 0b10000111,
0b10001011, 0b10001101, 0b10001110, 0b10010011, 0b10010101, 0b10010110,
0b10011001, 0b10011010, 0b10011100, 0b10100011, 0b10100101, 0b10100110,
0b10101001, 0b10101010, 0b10101100, 0b10110001, 0b10110010, 0b10110100,
0b10111000, 0b11000011, 0b11000101, 0b11000110, 0b11001001, 0b11001010,
0b11001100, 0b11010001, 0b11010010, 0b11010100, 0b11011000, 0b11100001,
0b11100010, 0b11100100, 0b11101000, 0b11110000}

Definition at line 368 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::GetRootSlot(), Is64(), PointerCompressionIsEnabled(), and Internals::SetEmbedderData().

◆ kApiTaggedSize

const int kApiTaggedSize = kApiSystemPointerSize

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

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

◆ KB

constexpr int KB = 1024
constexpr

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

◆ kExternalPointerMarkBit

constexpr uint64_t kExternalPointerMarkBit = 1ULL << 62
constexpr

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

◆ kExternalPointerTagMask

constexpr uint64_t kExternalPointerTagMask = 0x40ff000000000000
constexpr

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

◆ kExternalPointerTagShift

constexpr uint64_t kExternalPointerTagShift = 48
constexpr

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

◆ kForwardingTag

const int kForwardingTag = 0

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

◆ kForwardingTagMask

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

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

◆ kForwardingTagSize

const int kForwardingTagSize = 2

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

◆ kGarbageCollectionReasonMaxValue

constexpr int kGarbageCollectionReasonMaxValue = 27
constexpr

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

◆ kHeapObjectReferenceTagMask

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

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

◆ kSmiMaxValue

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

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

Referenced by SmiTagging< 4 >::IsValidSmi().

◆ kSmiMinValue

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

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

Referenced by SmiTagging< 4 >::IsValidSmi().

◆ kSmiShiftSize

const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize

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

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

◆ kSmiTag

const int kSmiTag = 0

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

◆ kSmiTagMask

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

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

◆ kSmiTagSize

const int kSmiTagSize = 1

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

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

◆ kSmiValueSize

const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize

Definition at line 146 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:70

Definition at line 71 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.