5#ifndef INCLUDE_V8_CPPGC_H_
6#define INCLUDE_V8_CPPGC_H_
21class AllocationHandle;
33class CustomSpaceStatisticsReceiver;
37 std::vector<std::unique_ptr<cppgc::CustomSpaceBase>> custom_spaces)
38 : custom_spaces(
std::move(custom_spaces)) {}
67 static std::unique_ptr<CppHeap> Create(
v8::Platform* platform,
90 V8_DEPRECATED(
"Terminate gets automatically called in the CppHeap destructor")
108 void CollectCustomSpaceStatisticsAtLastGC(
109 std::vector<
cppgc::CustomSpaceIndex> custom_spaces,
117 void EnableDetachedGarbageCollectionsForTesting();
124 void CollectGarbageForTesting(
cppgc::EmbedderStackState stack_state);
131 void CollectGarbageInYoungGenerationForTesting(
132 cppgc::EmbedderStackState stack_state);
183 return {
nullptr, Trace};
@ kIncrementalAndConcurrent
@ kIncrementalAndConcurrent
virtual void Visit(const void *self, TraceDescriptor)
virtual ~CppHeap()=default
virtual void AllocatedBytes(cppgc::CustomSpaceIndex space_index, size_t bytes)=0
virtual ~CustomSpaceStatisticsReceiver()=default
JSVisitor(cppgc::Visitor::Key key)
~JSVisitor() override=default
virtual void Visit(const TracedReferenceBase &ref)
void Trace(const TracedReferenceBase &ref)
bool IsEmptyThreadSafe() const
static cppgc::TraceDescriptor GetTraceDescriptor(const void *self)
static void Trace(Visitor *visitor, const void *self)
std::vector< std::unique_ptr< cppgc::CustomSpaceBase > > custom_spaces
CppHeapCreateParams(const CppHeapCreateParams &)=delete
CppHeapCreateParams(std::vector< std::unique_ptr< cppgc::CustomSpaceBase > > custom_spaces)
CppHeapCreateParams & operator=(const CppHeapCreateParams &)=delete
#define V8_DEPRECATED(message)
std::unique_ptr< ValueMirror > key