v8  9.0.257(node16.0.0)
V8 is Google's open source JavaScript engine
v8-internal.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <type_traits>
#include "v8-version.h"
#include "v8config.h"
Include dependency graph for v8-internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SmiTagging< tagged_ptr_size >
 
struct  SmiTagging< 4 >
 
struct  SmiTagging< 8 >
 
class  Internals
 
struct  CastCheck< PerformCheck >
 
class  BackingStoreBase
 

Namespaces

 v8
 
 v8::internal
 

Typedefs

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

Enumerations

enum  ExternalPointerTag : Address {
  kExternalPointerNullTag = static_cast<Address>(0ULL), kArrayBufferBackingStoreTag = static_cast<Address>(1ULL << 48), kTypedArrayExternalPointerTag = static_cast<Address>(2ULL << 48), kDataViewDataPointerTag = static_cast<Address>(3ULL << 48),
  kExternalStringResourceTag = static_cast<Address>(4ULL << 48), kExternalStringResourceDataTag = static_cast<Address>(5ULL << 48), kForeignForeignAddressTag = static_cast<Address>(6ULL << 48), kNativeContextMicrotaskQueueTag = static_cast<Address>(7ULL << 48),
  kEmbedderDataSlotPayloadTag = static_cast<Address>(0ULL << 48)
}
 

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)
 
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 kHeapObjectTag = 1
 
const int kWeakHeapObjectTag = 3
 
const int kHeapObjectTagSize = 2
 
const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 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)