![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
Namespaces | |
namespace | internal |
namespace | subtle |
namespace | testing |
Classes | |
struct | AdditionalBytes |
class | AllocationHandle |
class | CustomSpace |
class | CustomSpaceBase |
struct | CustomSpaceIndex |
class | DefaultPlatform |
struct | EphemeronPair |
class | GarbageCollected |
class | GarbageCollectedMixin |
class | Heap |
class | HeapHandle |
struct | HeapStatistics |
class | LivenessBroker |
class | MakeGarbageCollectedTrait |
class | MakeGarbageCollectedTraitBase |
class | NameProvider |
class | Platform |
struct | PostConstructionCallbackTrait |
class | ProcessHeapStatistics |
struct | SpaceTrait |
struct | TraceDescriptor |
struct | TraceTrait |
struct | TraceTrait< v8::TracedReference< T > > |
class | Visitor |
Concepts | |
concept | IsStackAllocatedType |
Typedefs | |
template<typename T > | |
using | Member |
template<typename T > | |
using | WeakMember |
template<typename T > | |
using | UntracedMember |
template<typename T > | |
using | Persistent |
template<typename T > | |
using | WeakPersistent |
using | IdleTask = v8::IdleTask |
using | JobHandle = v8::JobHandle |
using | JobDelegate = v8::JobDelegate |
using | JobTask = v8::JobTask |
using | PageAllocator = v8::PageAllocator |
using | Task = v8::Task |
using | TaskPriority = v8::TaskPriority |
using | TaskRunner = v8::TaskRunner |
using | TracingController = v8::TracingController |
using | SourceLocation = v8::SourceLocation |
using | TraceCallback = void (*)(Visitor* visitor, const void* object) |
using | TraceDescriptorCallback = TraceDescriptor (*)(const void* address) |
using | WeakCallback = void (*)(const LivenessBroker&, const void*) |
Enumerations | |
enum class | EmbedderStackState { kMayContainHeapPointers , kNoHeapPointers } |
Functions | |
bool | IsInitialized () |
void | InitializeProcess (PageAllocator *page_allocator, size_t desired_heap_size) |
void | ShutdownProcess () |
template<typename T , typename... Args> | |
V8_INLINE T * | MakeGarbageCollected (AllocationHandle &handle, Args &&... args) |
template<typename T , typename... Args> | |
V8_INLINE T * | MakeGarbageCollected (AllocationHandle &handle, AdditionalBytes additional_bytes, Args &&... args) |
Variables | |
constexpr internal::SentinelPointer | kSentinelPointer |
template<typename T > | |
constexpr bool | IsGarbageCollectedMixinTypeV |
template<typename T > | |
constexpr bool | IsGarbageCollectedTypeV |
template<typename T > | |
constexpr bool | IsGarbageCollectedOrMixinTypeV |
template<typename T > | |
constexpr bool | IsGarbageCollectedWithMixinTypeV |
template<typename T > | |
constexpr bool | IsMemberTypeV = internal::IsMemberType<T>::value |
template<typename T > | |
constexpr bool | IsUntracedMemberTypeV = internal::IsUntracedMemberType<T>::value |
template<typename T > | |
constexpr bool | IsWeakMemberTypeV = internal::IsWeakMemberType<T>::value |
template<typename T > | |
constexpr bool | IsWeakV = internal::IsWeak<T>::value |
template<typename T > | |
constexpr bool | IsCompleteV = internal::IsComplete<T>::value |
template<typename T > | |
constexpr bool | IsMemberOrWeakMemberTypeV |
template<typename T > | |
constexpr bool | IsAnyMemberTypeV = internal::IsAnyMemberTypeV<std::decay_t<T>> |
cppgc - A C++ garbage collection library.
using cppgc::IdleTask = v8::IdleTask |
Definition at line 18 of file platform.h.
using cppgc::JobDelegate = v8::JobDelegate |
Definition at line 20 of file platform.h.
using cppgc::JobHandle = v8::JobHandle |
Definition at line 19 of file platform.h.
using cppgc::JobTask = v8::JobTask |
Definition at line 21 of file platform.h.
using cppgc::Member |
Members are used in classes to contain strong pointers to other garbage collected objects. All Member fields of a class must be traced in the class' trace method.
Definition at line 22 of file platform.h.
using cppgc::Persistent |
Persistent is a way to create a strong pointer from an off-heap object to another on-heap object. As long as the Persistent handle is alive the GC will keep the object pointed to alive. The Persistent handle is always a GC root from the point of view of the GC. Persistent must be constructed and destructed in the same thread.
Definition at line 362 of file persistent.h.
Definition at line 12 of file source-location.h.
using cppgc::Task = v8::Task |
Definition at line 23 of file platform.h.
using cppgc::TaskPriority = v8::TaskPriority |
Definition at line 24 of file platform.h.
using cppgc::TaskRunner = v8::TaskRunner |
Definition at line 25 of file platform.h.
using cppgc::TraceCallback = void (*)(Visitor* visitor, const void* object) |
Callback for invoking tracing on a given object.
visitor | The visitor to dispatch to. |
object | The object to invoke tracing on. |
Definition at line 38 of file trace-trait.h.
using cppgc::TraceDescriptorCallback = TraceDescriptor (*)(const void* address) |
Callback for getting a TraceDescriptor for a given address.
address | Possibly inner address of an object. |
Definition at line 62 of file trace-trait.h.
Definition at line 26 of file platform.h.
using cppgc::UntracedMember |
UntracedMember is a pointer to an on-heap object that is not traced for some reason. Do not use this unless you know what you are doing. Keeping raw pointers to on-heap objects is prohibited unless used from stack. Pointee must be kept alive through other means.
using cppgc::WeakCallback = void (*)(const LivenessBroker&, const void*) |
using cppgc::WeakMember |
WeakMember is similar to Member in that it is used to point to other garbage collected objects. However instead of creating a strong pointer to the object, the WeakMember creates a weak pointer, which does not keep the pointee alive. Hence if all pointers to to a heap allocated object are weak the object will be garbage collected. At the time of GC the weak pointers will automatically be set to null.
using cppgc::WeakPersistent |
WeakPersistent is a way to create a weak pointer from an off-heap object to an on-heap object. The pointer is automatically cleared when the pointee gets collected. WeakPersistent must be constructed and destructed in the same thread.
Definition at line 372 of file persistent.h.
|
strong |
V8_EXPORT void cppgc::InitializeProcess | ( | PageAllocator * | page_allocator = nullptr, |
size_t | desired_heap_size = 0 ) |
Process-global initialization of the garbage collector. Must be called before creating a Heap.
Can be called multiple times when paired with ShutdownProcess()
.
page_allocator | The allocator used for maintaining meta data. Must stay always alive and not change between multiple calls to InitializeProcess. If no allocator is provided, a default internal version will be used. |
desired_heap_size | Desired amount of virtual address space to reserve for the heap, in bytes. Actual size will be clamped to minimum and maximum values based on compile-time settings and may be rounded up. If this parameter is zero, a default value will be used. |
Definition at line 92 of file platform.cc.
V8_EXPORT bool cppgc::IsInitialized | ( | ) |
V8_INLINE T * cppgc::MakeGarbageCollected | ( | AllocationHandle & | handle, |
AdditionalBytes | additional_bytes, | ||
Args &&... | args ) |
Constructs a managed object of type T where T transitively inherits from GarbageCollected. Created objects will have additional bytes appended to it. Allocated memory would suffice for sizeof(T) + additional_bytes
.
additional_bytes | Denotes how many bytes to append to T. |
args | List of arguments with which an instance of T will be constructed. |
Definition at line 294 of file allocation.h.
V8_INLINE T * cppgc::MakeGarbageCollected | ( | AllocationHandle & | handle, |
Args &&... | args ) |
Constructs a managed object of type T where T transitively inherits from GarbageCollected.
args | List of arguments with which an instance of T will be constructed. |
Definition at line 276 of file allocation.h.
V8_EXPORT void cppgc::ShutdownProcess | ( | ) |
Must be called after destroying the last used heap. Some process-global metadata may not be returned and reused upon a subsequent InitializeProcess()
call.
Definition at line 115 of file platform.cc.
|
constexpr |
Value is true for any member type.
Definition at line 268 of file type-traits.h.
|
constexpr |
Value is true for types that are complete, and false otherwise.
Definition at line 255 of file type-traits.h.
|
constexpr |
Value is true for types that inherit from GarbageCollectedMixin
but not GarbageCollected<T>
(i.e., they are free mixins), and false otherwise.
Definition at line 199 of file type-traits.h.
|
constexpr |
Value is true for types that inherit from either GarbageCollected<T>
or GarbageCollectedMixin
, and false otherwise.
Definition at line 215 of file type-traits.h.
|
constexpr |
Value is true for types that inherit from GarbageCollected<T>
, and false otherwise.
Definition at line 207 of file type-traits.h.
|
constexpr |
Value is true for types that inherit from GarbageCollected<T>
and GarbageCollectedMixin
, and false otherwise.
Definition at line 223 of file type-traits.h.
|
constexpr |
Value is true for member types Member<T>
and WeakMember<T>
.
Definition at line 261 of file type-traits.h.
|
constexpr |
Value is true for types of type Member<T>
, and false otherwise.
Definition at line 230 of file type-traits.h.
|
constexpr |
Value is true for types of type UntracedMember<T>
, and false otherwise.
Definition at line 236 of file type-traits.h.
|
constexpr |
Value is true for types of type WeakMember<T>
, and false otherwise.
Definition at line 242 of file type-traits.h.
|
constexpr |
Value is true for types that are considered weak references, and false otherwise.
Definition at line 249 of file type-traits.h.
|
constexpr |
Definition at line 35 of file sentinel-pointer.h.