Index: src/heap/mark-compact.h |
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
index cd207bcda27ba792ec2291abead68006c86932be..b4bf0019a6a76837573f63ed4e34dc13ff368897 100644 |
--- a/src/heap/mark-compact.h |
+++ b/src/heap/mark-compact.h |
@@ -577,6 +577,20 @@ class MarkCompactCollector { |
return nullptr; |
} |
+ std::vector<std::pair<void*, void*>>& wrappers_to_trace() { |
+ return wrappers_to_trace_; |
+ } |
+ |
+ void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer); |
+ |
+ EmbedderHeapTracer* embedder_heap_tracer() { return embedder_heap_tracer_; } |
+ |
+ bool UsingEmbedderHeapTracer() { return embedder_heap_tracer(); } |
+ |
+ void TracePossibleWrapper(JSObject* js_object); |
+ |
+ void RegisterExternallyReferencedObject(Object** object); |
+ |
private: |
class EvacuateNewSpaceVisitor; |
class EvacuateOldSpaceVisitor; |
@@ -678,8 +692,8 @@ class MarkCompactCollector { |
// or overflowed in the heap. This respects references only considered in |
// the final atomic marking pause including the following: |
// - Processing of objects reachable through Harmony WeakMaps. |
- // - Objects reachable due to host application logic like object groups |
- // or implicit references' groups. |
+ // - Objects reachable due to host application logic like object groups, |
+ // implicit references' groups, or embedder heap tracing. |
void ProcessEphemeralMarking(ObjectVisitor* visitor, |
bool only_process_harmony_weak_collections); |
@@ -813,7 +827,12 @@ class MarkCompactCollector { |
base::VirtualMemory* marking_deque_memory_; |
size_t marking_deque_memory_committed_; |
MarkingDeque marking_deque_; |
+ std::vector<std::pair<void*, void*>> wrappers_to_trace_; |
+ |
CodeFlusher* code_flusher_; |
+ |
+ EmbedderHeapTracer* embedder_heap_tracer_; |
+ |
bool have_code_to_deoptimize_; |
List<Page*> evacuation_candidates_; |