v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
roots.h File Reference
Include dependency graph for roots.h:

Go to the source code of this file.

Classes

class  v8::internal::RootsTable
 
class  v8::internal::ReadOnlyRoots
 

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define STRONG_READ_ONLY_HEAP_NUMBER_ROOT_LIST(V)
 
#define INTERNALIZED_STRING_LIST_ADAPTER(V, name, ...)
 
#define EXTRA_IMPORTANT_INTERNALIZED_STRING_ROOT_LIST(V)
 
#define STRONG_READ_ONLY_ROOT_LIST(V)
 
#define TRUSTED_ROOT_LIST(V)
 
#define BUILTINS_WITH_SFI_LIST_GENERATOR(APPLY, V)
 
#define BUILTINS_WITH_SFI_ROOTS_LIST_ADAPTER(V, CamelName, underscore_name, ...)
 
#define BUILTINS_WITH_SFI_ROOTS_LIST(V)
 
#define STRONG_MUTABLE_IMMOVABLE_ROOT_LIST(V)
 
#define STRONG_MUTABLE_MOVABLE_ROOT_LIST(V)
 
#define SMI_ROOT_LIST(V)
 
#define INTERNALIZED_STRING_ROOT_LIST(V)
 
#define SYMBOL_ROOT_LIST_ADAPTER(V, name, ...)
 
#define PRIVATE_SYMBOL_ROOT_LIST(V)
 
#define PUBLIC_SYMBOL_ROOT_LIST(V)
 
#define WELL_KNOWN_SYMBOL_ROOT_LIST(V)
 
#define NAME_FOR_PROTECTOR_ROOT_LIST(V)
 
#define ACCESSOR_INFO_ROOT_LIST_ADAPTER(V, name, CamelName, ...)
 
#define ACCESSOR_INFO_ROOT_LIST(V)
 
#define READ_ONLY_ROOT_LIST(V)
 
#define MUTABLE_ROOT_LIST(V)
 
#define ROOT_LIST(V)
 
#define COUNT_ROOT(...)
 
#define DECL(type, name, CamelName)
 
#define FOR_PROTECTOR_CHECK(type, name, CamelName)
 
#define ROOT_TYPE_FWD_DECL(Type, name, CamelName)
 
#define ROOT_ACCESSOR(Type, name, CamelName)
 
#define ROOT_ACCESSOR(Type, name, CamelName)
 

Enumerations

enum class  v8::internal::RootIndex : uint16_t {
  v8::internal::COUNT_ROOT , v8::internal::DECL , v8::internal::kRootListLength , v8::internal::kFirstRoot = 0 ,
  v8::internal::kLastRoot = kRootListLength - 1 , v8::internal::kReadOnlyRootsCount = 0 READ_ONLY_ROOT_LIST(COUNT_ROOT) , v8::internal::kImmortalImmovableRootsCount , v8::internal::kFirstReadOnlyRoot = kFirstRoot ,
  v8::internal::kLastReadOnlyRoot = kFirstReadOnlyRoot + kReadOnlyRootsCount - 1 , v8::internal::kFirstHeapNumberRoot = kNanValue , v8::internal::kLastHeapNumberRoot = kSmiMaxValuePlusOne , v8::internal::kFirstJSReceiverMapRoot = kJSSharedArrayMap ,
  v8::internal::kFirstNameForProtector = kconstructor_string , v8::internal::kNameForProtectorCount = 0 NAME_FOR_PROTECTOR_ROOT_LIST(COUNT_ROOT) , v8::internal::kLastNameForProtector = kFirstNameForProtector + kNameForProtectorCount - 1 , v8::internal::kMutableRootsCount ,
  v8::internal::kFirstStrongRoot = kLastReadOnlyRoot + 1 , v8::internal::kLastStrongRoot = kFirstStrongRoot + kMutableRootsCount - 1 , v8::internal::kFirstStrongOrReadOnlyRoot = kFirstRoot , v8::internal::kLastStrongOrReadOnlyRoot = kLastStrongRoot ,
  v8::internal::kFirstImmortalImmovableRoot = kFirstReadOnlyRoot , v8::internal::kLastImmortalImmovableRoot , v8::internal::kFirstSmiRoot = kLastStrongRoot + 1 , v8::internal::kLastSmiRoot = kLastRoot ,
  v8::internal::kFirstBuiltinWithSfiRoot = kProxyRevokeSharedFun , v8::internal::kLastBuiltinWithSfiRoot = kFirstBuiltinWithSfiRoot + BUILTINS_WITH_SFI_ROOTS_LIST(COUNT_ROOT) - 1
}
 

Functions

ReadOnlyRoots v8::internal::GetReadOnlyRoots ()
 

Macro Definition Documentation

◆ ACCESSOR_INFO_ROOT_LIST

#define ACCESSOR_INFO_ROOT_LIST ( V)
Value:
#define ACCESSOR_INFO_LIST_GENERATOR(V, _)
Definition accessors.h:25
#define V(Name)
#define ACCESSOR_INFO_ROOT_LIST_ADAPTER(V, name, CamelName,...)
Definition roots.h:461

Definition at line 465 of file roots.h.

◆ ACCESSOR_INFO_ROOT_LIST_ADAPTER

#define ACCESSOR_INFO_ROOT_LIST_ADAPTER ( V,
name,
CamelName,
... )
Value:
V(AccessorInfo, name##_accessor, CamelName##Accessor)

Definition at line 461 of file roots.h.

◆ BUILTINS_WITH_SFI_LIST_GENERATOR

#define BUILTINS_WITH_SFI_LIST_GENERATOR ( APPLY,
V )

Definition at line 266 of file roots.h.

◆ BUILTINS_WITH_SFI_ROOTS_LIST

#define BUILTINS_WITH_SFI_ROOTS_LIST ( V)
Value:
#define BUILTINS_WITH_SFI_LIST_GENERATOR(APPLY, V)
Definition roots.h:266
#define BUILTINS_WITH_SFI_ROOTS_LIST_ADAPTER(V, CamelName, underscore_name,...)
Definition roots.h:315

Definition at line 319 of file roots.h.

◆ BUILTINS_WITH_SFI_ROOTS_LIST_ADAPTER

#define BUILTINS_WITH_SFI_ROOTS_LIST_ADAPTER ( V,
CamelName,
underscore_name,
... )
Value:
V(SharedFunctionInfo, underscore_name##_shared_fun, CamelName##SharedFun)

Definition at line 315 of file roots.h.

◆ COUNT_ROOT

#define COUNT_ROOT ( ...)
Value:
+1

Definition at line 495 of file roots.h.

◆ DECL

#define DECL ( type,
name,
CamelName )
Value:
k##CamelName,

Definition at line 496 of file roots.h.

◆ EXTRA_IMPORTANT_INTERNALIZED_STRING_ROOT_LIST

#define EXTRA_IMPORTANT_INTERNALIZED_STRING_ROOT_LIST ( V)
Value:
#define EXTRA_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _)
#define INTERNALIZED_STRING_LIST_ADAPTER(V, name,...)
Definition roots.h:46

Definition at line 49 of file roots.h.

◆ FOR_PROTECTOR_CHECK

#define FOR_PROTECTOR_CHECK ( type,
name,
CamelName )
Value:
static_assert(RootIndex::kFirstNameForProtector <= RootIndex::k##CamelName); \
static_assert(RootIndex::k##CamelName <= RootIndex::kLastNameForProtector);

Definition at line 553 of file roots.h.

◆ INTERNALIZED_STRING_LIST_ADAPTER

#define INTERNALIZED_STRING_LIST_ADAPTER ( V,
name,
... )
Value:
V(String, name, name)

Definition at line 46 of file roots.h.

◆ INTERNALIZED_STRING_ROOT_LIST

#define INTERNALIZED_STRING_ROOT_LIST ( V)
Value:
NOT_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR( \
#define IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _)

Definition at line 434 of file roots.h.

◆ MUTABLE_ROOT_LIST

#define MUTABLE_ROOT_LIST ( V)
Value:
STRONG_MUTABLE_MOVABLE_ROOT_LIST(V) \
SMI_ROOT_LIST(V)
#define STRONG_MUTABLE_IMMOVABLE_ROOT_LIST(V)
Definition roots.h:324

Definition at line 483 of file roots.h.

◆ NAME_FOR_PROTECTOR_ROOT_LIST

#define NAME_FOR_PROTECTOR_ROOT_LIST ( V)
Value:
SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(SYMBOL_ROOT_LIST_ADAPTER, V) \
PUBLIC_SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(SYMBOL_ROOT_LIST_ADAPTER, V) \
WELL_KNOWN_SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(SYMBOL_ROOT_LIST_ADAPTER, V)
#define INTERNALIZED_STRING_FOR_PROTECTOR_LIST_GENERATOR(V, _)
#define SYMBOL_ROOT_LIST_ADAPTER(V, name,...)
Definition roots.h:441

Definition at line 452 of file roots.h.

◆ PRIVATE_SYMBOL_ROOT_LIST

#define PRIVATE_SYMBOL_ROOT_LIST ( V)
Value:

Definition at line 444 of file roots.h.

◆ PUBLIC_SYMBOL_ROOT_LIST

#define PUBLIC_SYMBOL_ROOT_LIST ( V)
Value:

Definition at line 446 of file roots.h.

◆ READ_ONLY_ROOT_LIST

#define READ_ONLY_ROOT_LIST ( V)
Value:
INTERNALIZED_STRING_ROOT_LIST(V) \
PRIVATE_SYMBOL_ROOT_LIST(V) \
PUBLIC_SYMBOL_ROOT_LIST(V) \
WELL_KNOWN_SYMBOL_ROOT_LIST(V) \
STRUCT_MAPS_LIST(V) \
TORQUE_DEFINED_MAP_ROOT_LIST(V) \
ALLOCATION_SITE_MAPS_LIST(V) \
NAME_FOR_PROTECTOR_ROOT_LIST(V) \
DATA_HANDLER_MAPS_LIST(V) \
/* Maps */ \
V(Map, external_map, ExternalMap) \
V(Map, message_object_map, JSMessageObjectMap)
#define STRONG_READ_ONLY_ROOT_LIST(V)
Definition roots.h:54

Definition at line 468 of file roots.h.

◆ ROOT_ACCESSOR [1/2]

#define ROOT_ACCESSOR ( Type,
name,
CamelName )
Value:
V8_INLINE IndirectHandle<Type> name();
const char * name
Definition builtins.cc:39
#define V8_INLINE
Definition v8config.h:500

Definition at line 581 of file roots.h.

◆ ROOT_ACCESSOR [2/2]

#define ROOT_ACCESSOR ( Type,
name,
CamelName )
Value:
V8_INLINE Tagged<Type> name() const; \
V8_INLINE Tagged<Type> unchecked_##name() const;

Definition at line 581 of file roots.h.

◆ ROOT_LIST

#define ROOT_LIST ( V)
Value:
MUTABLE_ROOT_LIST(V)
#define READ_ONLY_ROOT_LIST(V)
Definition roots.h:468

Definition at line 488 of file roots.h.

◆ ROOT_TYPE_FWD_DECL

#define ROOT_TYPE_FWD_DECL ( Type,
name,
CamelName )
Value:
class Type;

Definition at line 559 of file roots.h.

◆ SMI_ROOT_LIST

#define SMI_ROOT_LIST ( V)
Value:
V(Smi, last_script_id, LastScriptId) \
V(Smi, last_debugging_id, LastDebuggingId) \
V(Smi, last_stack_trace_id, LastStackTraceId) \
/* To distinguish the function templates, so that we can find them in the */ \
/* function cache of the native context. */ \
V(Smi, next_template_serial_number, NextTemplateSerialNumber) \
V(Smi, construct_stub_create_deopt_pc_offset, \
ConstructStubCreateDeoptPCOffset) \
V(Smi, construct_stub_invoke_deopt_pc_offset, \
ConstructStubInvokeDeoptPCOffset) \
V(Smi, deopt_pc_offset_after_adapt_shadow_stack, \
DeoptPCOffsetAfterAdaptShadowStack) \
V(Smi, interpreter_entry_return_pc_offset, InterpreterEntryReturnPCOffset)

Definition at line 418 of file roots.h.

◆ STRONG_MUTABLE_IMMOVABLE_ROOT_LIST

#define STRONG_MUTABLE_IMMOVABLE_ROOT_LIST ( V)

Definition at line 324 of file roots.h.

◆ STRONG_MUTABLE_MOVABLE_ROOT_LIST

#define STRONG_MUTABLE_MOVABLE_ROOT_LIST ( V)

Definition at line 382 of file roots.h.

◆ STRONG_READ_ONLY_HEAP_NUMBER_ROOT_LIST

#define STRONG_READ_ONLY_HEAP_NUMBER_ROOT_LIST ( V)
Value:
/* Special numbers */ \
V(HeapNumber, nan_value, NanValue) \
V(HeapNumber, hole_nan_value, HoleNanValue) \
V(HeapNumber, infinity_value, InfinityValue) \
V(HeapNumber, minus_zero_value, MinusZeroValue) \
V(HeapNumber, minus_infinity_value, MinusInfinityValue) \
V(HeapNumber, max_safe_integer, MaxSafeInteger) \
V(HeapNumber, max_uint_32, MaxUInt32) \
V(HeapNumber, smi_min_value, SmiMinValue) \
V(HeapNumber, smi_max_value_plus_one, SmiMaxValuePlusOne)

Definition at line 32 of file roots.h.

◆ STRONG_READ_ONLY_ROOT_LIST

#define STRONG_READ_ONLY_ROOT_LIST ( V)

Definition at line 54 of file roots.h.

◆ SYMBOL_ROOT_LIST_ADAPTER

#define SYMBOL_ROOT_LIST_ADAPTER ( V,
name,
... )
Value:
V(Symbol, name, name)

Definition at line 441 of file roots.h.

◆ TRUSTED_ROOT_LIST

#define TRUSTED_ROOT_LIST ( V)
Value:
V(TrustedByteArray, empty_trusted_byte_array, EmptyTrustedByteArray) \
V(TrustedFixedArray, empty_trusted_fixed_array, EmptyTrustedFixedArray) \
V(TrustedWeakFixedArray, empty_trusted_weak_fixed_array, \
EmptyTrustedWeakFixedArray) \
V(ProtectedFixedArray, empty_protected_fixed_array, \
EmptyProtectedFixedArray) \
V(ProtectedWeakFixedArray, empty_protected_weak_fixed_array, \
EmptyProtectedWeakFixedArray)

Definition at line 256 of file roots.h.

◆ WELL_KNOWN_SYMBOL_ROOT_LIST

#define WELL_KNOWN_SYMBOL_ROOT_LIST ( V)
Value:

Definition at line 448 of file roots.h.