V8 Project
globals.h File Reference
+ Include dependency graph for globals.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8::internal::CodeDesc
 
union  v8::internal::DoubleRepresentation
 
union  v8::internal::IeeeDoubleLittleEndianArchType
 
union  v8::internal::IeeeDoubleBigEndianArchType
 
struct  v8::internal::AccessorDescriptor
 

Namespaces

 v8
 Debugger support for the V8 JavaScript engine.
 
 v8::base
 
 v8::internal
 

Macros

#define V8_INFINITY   INFINITY
 
#define V8_TURBOFAN_BACKEND   0
 
#define V8_TURBOFAN_TARGET   0
 
#define V8_OOL_CONSTANT_POOL   0
 
#define V8_DEFAULT_STACK_SIZE_KB   984
 
#define ROUND_UP(n, sz)   (((n) + ((sz) - 1)) & ~((sz) - 1))
 
#define FUNCTION_ADDR(f)    (reinterpret_cast<v8::internal::Address>(reinterpret_cast<intptr_t>(f)))
 
#define PROCESSOR_CACHE_LINE_SIZE   64
 
#define HAS_SMI_TAG(value)    ((reinterpret_cast<intptr_t>(value) & kSmiTagMask) == kSmiTag)
 
#define HAS_FAILURE_TAG(value)    ((reinterpret_cast<intptr_t>(value) & kFailureTagMask) == kFailureTag)
 
#define OBJECT_POINTER_ALIGN(value)    (((value) + kObjectAlignmentMask) & ~kObjectAlignmentMask)
 
#define POINTER_SIZE_ALIGN(value)    (((value) + kPointerAlignmentMask) & ~kPointerAlignmentMask)
 
#define CODE_POINTER_ALIGN(value)    (((value) + kCodeAlignmentMask) & ~kCodeAlignmentMask)
 
#define TRACK_MEMORY(name)
 

Typedefs

typedef uint8_t v8::internal::byte
 
typedef byte * v8::internal::Address
 
typedef uint16_t v8::internal::uc16
 
typedef int32_t v8::internal::uc32
 
typedef bool(* v8::internal::WeakSlotCallback) (Object **pointer)
 
typedef bool(* v8::internal::WeakSlotCallbackWithHeap) (Heap *heap, Object **pointer)
 
typedef int(* v8::internal::HeapObjectCallback) (HeapObject *obj)
 
typedef bool(* v8::internal::ConstraintCallback) (Address new_addr, Address old_addr)
 
typedef void(* v8::internal::InlineCacheCallback) (Code *code, Address ic)
 
typedef void(* v8::internal::StoreBufferCallback) (Heap *heap, MemoryChunk *page, StoreBufferEvent event)
 

Enumerations

enum  v8::internal::StrictMode { v8::internal::SLOPPY , v8::internal::STRICT }
 
enum  v8::internal::AllocationSpace {
  v8::internal::NEW_SPACE , v8::internal::OLD_POINTER_SPACE , v8::internal::OLD_DATA_SPACE , v8::internal::CODE_SPACE ,
  v8::internal::MAP_SPACE , v8::internal::CELL_SPACE , v8::internal::PROPERTY_CELL_SPACE , v8::internal::LO_SPACE ,
  v8::internal::INVALID_SPACE , v8::internal::FIRST_SPACE = NEW_SPACE , v8::internal::LAST_SPACE = LO_SPACE , v8::internal::FIRST_PAGED_SPACE = OLD_POINTER_SPACE ,
  v8::internal::LAST_PAGED_SPACE = PROPERTY_CELL_SPACE
}
 
enum  v8::internal::PretenureFlag { v8::internal::NOT_TENURED , v8::internal::TENURED }
 
enum  v8::internal::MinimumCapacity { v8::internal::USE_DEFAULT_MINIMUM_CAPACITY , v8::internal::USE_CUSTOM_MINIMUM_CAPACITY }
 
enum  v8::internal::GarbageCollector { v8::internal::SCAVENGER , v8::internal::MARK_COMPACTOR }
 
enum  v8::internal::Executability { v8::internal::NOT_EXECUTABLE , v8::internal::EXECUTABLE }
 
enum  v8::internal::VisitMode { v8::internal::VISIT_ALL , v8::internal::VISIT_ALL_IN_SCAVENGE , v8::internal::VISIT_ALL_IN_SWEEP_NEWSPACE , v8::internal::VISIT_ONLY_STRONG }
 
enum  v8::internal::NativesFlag { v8::internal::NOT_NATIVES_CODE , v8::internal::NATIVES_CODE }
 
enum  v8::internal::InlineCacheState {
  v8::internal::UNINITIALIZED , v8::internal::PREMONOMORPHIC , v8::internal::MONOMORPHIC , v8::internal::PROTOTYPE_FAILURE ,
  v8::internal::POLYMORPHIC , v8::internal::MEGAMORPHIC , v8::internal::GENERIC , v8::internal::DEBUG_STUB ,
  v8::internal::DEFAULT
}
 
enum  v8::internal::CallFunctionFlags { v8::internal::NO_CALL_FUNCTION_FLAGS , v8::internal::CALL_AS_METHOD , v8::internal::WRAP_AND_CALL }
 
enum  v8::internal::CallConstructorFlags { v8::internal::NO_CALL_CONSTRUCTOR_FLAGS , v8::internal::RECORD_CONSTRUCTOR_TARGET }
 
enum  v8::internal::CacheHolderFlag { v8::internal::kCacheOnPrototype , v8::internal::kCacheOnPrototypeReceiverIsDictionary , v8::internal::kCacheOnPrototypeReceiverIsPrimitive , v8::internal::kCacheOnReceiver }
 
enum  v8::internal::StoreBufferEvent { v8::internal::kStoreBufferFullEvent , v8::internal::kStoreBufferStartScanningPagesEvent , v8::internal::kStoreBufferScanningPageEvent }
 
enum  v8::internal::StateTag {
  v8::internal::JS , v8::internal::GC , v8::internal::COMPILER , v8::internal::OTHER ,
  v8::internal::EXTERNAL , v8::internal::IDLE
}
 
enum  v8::internal::CpuFeature {
  v8::internal::SSE4_1 , v8::internal::SSE3 , v8::internal::SAHF , v8::internal::VFP3 ,
  v8::internal::ARMv7 , v8::internal::SUDIV , v8::internal::MLS , v8::internal::UNALIGNED_ACCESSES ,
  v8::internal::MOVW_MOVT_IMMEDIATE_LOADS , v8::internal::VFP32DREGS , v8::internal::NEON , v8::internal::FPU ,
  v8::internal::FP64FPU , v8::internal::MIPSr1 , v8::internal::MIPSr2 , v8::internal::MIPSr6 ,
  v8::internal::ALWAYS_ALIGN_CSP , v8::internal::NUMBER_OF_CPU_FEATURES
}
 
enum  v8::internal::SmiCheckType { v8::internal::DONT_DO_SMI_CHECK , v8::internal::DO_SMI_CHECK }
 
enum  v8::internal::ScopeType {
  v8::internal::EVAL_SCOPE , v8::internal::FUNCTION_SCOPE , v8::internal::MODULE_SCOPE , v8::internal::GLOBAL_SCOPE ,
  v8::internal::CATCH_SCOPE , v8::internal::BLOCK_SCOPE , v8::internal::WITH_SCOPE
}
 
enum  v8::internal::VariableMode {
  v8::internal::VAR , v8::internal::CONST_LEGACY , v8::internal::LET , v8::internal::CONST ,
  v8::internal::MODULE , v8::internal::INTERNAL , v8::internal::TEMPORARY , v8::internal::DYNAMIC ,
  v8::internal::DYNAMIC_GLOBAL , v8::internal::DYNAMIC_LOCAL
}
 
enum  v8::internal::InitializationFlag { v8::internal::kNeedsInitialization , v8::internal::kCreatedInitialized }
 
enum  v8::internal::MaybeAssignedFlag { v8::internal::kNotAssigned , v8::internal::kMaybeAssigned }
 
enum  v8::internal::ClearExceptionFlag { v8::internal::KEEP_EXCEPTION , v8::internal::CLEAR_EXCEPTION }
 
enum  v8::internal::MinusZeroMode { v8::internal::TREAT_MINUS_ZERO_AS_ZERO , v8::internal::FAIL_ON_MINUS_ZERO }
 
enum  v8::internal::Signedness { v8::internal::kSigned , v8::internal::kUnsigned }
 
enum  v8::internal::FunctionKind {
  v8::internal::kNormalFunction = 0 , v8::internal::kArrowFunction = 1 , v8::internal::kGeneratorFunction = 2 , v8::internal::kConciseMethod = 4 ,
  v8::internal::kConciseGeneratorMethod = kGeneratorFunction | kConciseMethod
}
 

Functions

 v8::internal::STATIC_ASSERT (kPointerSize==(1<< kPointerSizeLog2))
 
template<typename F >
F v8::internal::FUNCTION_CAST (Address addr)
 
bool v8::internal::IsDynamicVariableMode (VariableMode mode)
 
bool v8::internal::IsDeclaredVariableMode (VariableMode mode)
 
bool v8::internal::IsLexicalVariableMode (VariableMode mode)
 
bool v8::internal::IsImmutableVariableMode (VariableMode mode)
 
bool v8::internal::IsValidFunctionKind (FunctionKind kind)
 
bool v8::internal::IsArrowFunction (FunctionKind kind)
 
bool v8::internal::IsGeneratorFunction (FunctionKind kind)
 
bool v8::internal::IsConciseMethod (FunctionKind kind)
 

Variables

const int v8::internal::KB = 1024
 
const int v8::internal::MB = KB * KB
 
const int v8::internal::GB = KB * KB * KB
 
const int v8::internal::kMaxInt = 0x7FFFFFFF
 
const int v8::internal::kMinInt = -kMaxInt - 1
 
const int v8::internal::kMaxInt8 = (1 << 7) - 1
 
const int v8::internal::kMinInt8 = -(1 << 7)
 
const int v8::internal::kMaxUInt8 = (1 << 8) - 1
 
const int v8::internal::kMinUInt8 = 0
 
const int v8::internal::kMaxInt16 = (1 << 15) - 1
 
const int v8::internal::kMinInt16 = -(1 << 15)
 
const int v8::internal::kMaxUInt16 = (1 << 16) - 1
 
const int v8::internal::kMinUInt16 = 0
 
const uint32_t v8::internal::kMaxUInt32 = 0xFFFFFFFFu
 
const int v8::internal::kCharSize = sizeof(char)
 
const int v8::internal::kShortSize = sizeof(short)
 
const int v8::internal::kIntSize = sizeof(int)
 
const int v8::internal::kInt32Size = sizeof(int32_t)
 
const int v8::internal::kInt64Size = sizeof(int64_t)
 
const int v8::internal::kDoubleSize = sizeof(double)
 
const int v8::internal::kIntptrSize = sizeof(intptr_t)
 
const int v8::internal::kPointerSize = sizeof(void*)
 
const int v8::internal::kRegisterSize = kPointerSize
 
const int v8::internal::kPCOnStackSize = kRegisterSize
 
const int v8::internal::kFPOnStackSize = kRegisterSize
 
const int v8::internal::kDoubleSizeLog2 = 3
 
const int v8::internal::kPointerSizeLog2 = 2
 
const intptr_t v8::internal::kIntptrSignBit = 0x80000000
 
const uintptr_t v8::internal::kUintptrAllBitsSet = 0xFFFFFFFFu
 
const bool v8::internal::kRequiresCodeRange = false
 
const size_t v8::internal::kMaximalCodeRangeSize = 0 * MB
 
const int v8::internal::kBitsPerByte = 8
 
const int v8::internal::kBitsPerByteLog2 = 3
 
const int v8::internal::kBitsPerPointer = kPointerSize * kBitsPerByte
 
const int v8::internal::kBitsPerInt = kIntSize * kBitsPerByte
 
const uint32_t v8::internal::kBinary32SignMask = 0x80000000u
 
const uint32_t v8::internal::kBinary32ExponentMask = 0x7f800000u
 
const uint32_t v8::internal::kBinary32MantissaMask = 0x007fffffu
 
const int v8::internal::kBinary32ExponentBias = 127
 
const int v8::internal::kBinary32MaxExponent = 0xFE
 
const int v8::internal::kBinary32MinExponent = 0x01
 
const int v8::internal::kBinary32MantissaBits = 23
 
const int v8::internal::kBinary32ExponentShift = 23
 
const uint64_t v8::internal::kQuietNaNMask = static_cast<uint64_t>(0xfff) << 51
 
const int v8::internal::kOneByteSize = kCharSize
 
const int v8::internal::kUC16Size = sizeof(uc16)
 
const intptr_t v8::internal::kSmiSignMask = kIntptrSignBit
 
const int v8::internal::kObjectAlignmentBits = kPointerSizeLog2
 
const intptr_t v8::internal::kObjectAlignment = 1 << kObjectAlignmentBits
 
const intptr_t v8::internal::kObjectAlignmentMask = kObjectAlignment - 1
 
const intptr_t v8::internal::kPointerAlignment = (1 << kPointerSizeLog2)
 
const intptr_t v8::internal::kPointerAlignmentMask = kPointerAlignment - 1
 
const intptr_t v8::internal::kDoubleAlignment = 8
 
const intptr_t v8::internal::kDoubleAlignmentMask = kDoubleAlignment - 1
 
const int v8::internal::kCodeAlignmentBits = 5
 
const intptr_t v8::internal::kCodeAlignment = 1 << kCodeAlignmentBits
 
const intptr_t v8::internal::kCodeAlignmentMask = kCodeAlignment - 1
 
const int v8::internal::kPageHeaderTag = 3
 
const int v8::internal::kPageHeaderTagSize = 2
 
const intptr_t v8::internal::kPageHeaderTagMask = (1 << kPageHeaderTagSize) - 1
 
const Address v8::internal::kZapValue = reinterpret_cast<Address>(0xdeadbeef)
 
const Address v8::internal::kHandleZapValue = reinterpret_cast<Address>(0xbaddeaf)
 
const Address v8::internal::kGlobalHandleZapValue = reinterpret_cast<Address>(0xbaffedf)
 
const Address v8::internal::kFromSpaceZapValue = reinterpret_cast<Address>(0xbeefdaf)
 
const uint32_t v8::internal::kSlotsZapValue = 0xbeefdeef
 
const uint32_t v8::internal::kDebugZapValue = 0xbadbaddb
 
const uint32_t v8::internal::kFreeListZapValue = 0xfeed1eaf
 
const int v8::internal::kCodeZapValue = 0xbadc0de
 
const uint32_t v8::internal::kQuietNaNHighBitsMask = 0xfff << (51 - 32)
 
const int v8::internal::kSpaceTagSize = 3
 
const int v8::internal::kSpaceTagMask = (1 << kSpaceTagSize) - 1
 
const uint32_t v8::internal::kHoleNanUpper32 = 0x7FFFFFFF
 
const uint32_t v8::internal::kHoleNanLower32 = 0xFFFFFFFF
 
const uint32_t v8::internal::kNaNOrInfinityLowerBoundUpper32 = 0x7FF00000
 
const uint64_t v8::internal::kHoleNanInt64
 
const uint64_t v8::internal::kLastNonNaNInt64
 

Macro Definition Documentation

◆ CODE_POINTER_ALIGN

#define CODE_POINTER_ALIGN (   value)     (((value) + kCodeAlignmentMask) & ~kCodeAlignmentMask)

Definition at line 586 of file globals.h.

◆ FUNCTION_ADDR

#define FUNCTION_ADDR (   f)     (reinterpret_cast<v8::internal::Address>(reinterpret_cast<intptr_t>(f)))

Definition at line 195 of file globals.h.

◆ HAS_FAILURE_TAG

#define HAS_FAILURE_TAG (   value)     ((reinterpret_cast<intptr_t>(value) & kFailureTagMask) == kFailureTag)

Definition at line 574 of file globals.h.

◆ HAS_SMI_TAG

#define HAS_SMI_TAG (   value)     ((reinterpret_cast<intptr_t>(value) & kSmiTagMask) == kSmiTag)

Definition at line 571 of file globals.h.

◆ OBJECT_POINTER_ALIGN

#define OBJECT_POINTER_ALIGN (   value)     (((value) + kObjectAlignmentMask) & ~kObjectAlignmentMask)

Definition at line 578 of file globals.h.

◆ POINTER_SIZE_ALIGN

#define POINTER_SIZE_ALIGN (   value)     (((value) + kPointerAlignmentMask) & ~kPointerAlignmentMask)

Definition at line 582 of file globals.h.

◆ PROCESSOR_CACHE_LINE_SIZE

#define PROCESSOR_CACHE_LINE_SIZE   64

Definition at line 283 of file globals.h.

◆ ROUND_UP

#define ROUND_UP (   n,
  sz 
)    (((n) + ((sz) - 1)) & ~((sz) - 1))

Definition at line 191 of file globals.h.

◆ TRACK_MEMORY

#define TRACK_MEMORY (   name)

Definition at line 606 of file globals.h.

◆ V8_DEFAULT_STACK_SIZE_KB

#define V8_DEFAULT_STACK_SIZE_KB   984

Definition at line 79 of file globals.h.

◆ V8_INFINITY

#define V8_INFINITY   INFINITY

Definition at line 25 of file globals.h.

◆ V8_OOL_CONSTANT_POOL

#define V8_OOL_CONSTANT_POOL   0

Definition at line 69 of file globals.h.

◆ V8_TURBOFAN_BACKEND

#define V8_TURBOFAN_BACKEND   0

Definition at line 32 of file globals.h.

◆ V8_TURBOFAN_TARGET

#define V8_TURBOFAN_TARGET   0

Definition at line 37 of file globals.h.