v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::ObjectVisitorForwarder Class Referencefinal
Inheritance diagram for v8::internal::ObjectVisitorForwarder:
Collaboration diagram for v8::internal::ObjectVisitorForwarder:

Public Member Functions

 ObjectVisitorForwarder (Isolate *isolate, ObjectVisitor *visitor)
 
 ObjectVisitorForwarder (LocalIsolate *isolate, ObjectVisitor *visitor)
 
void VisitPointers (Tagged< HeapObject > host, ObjectSlot start, ObjectSlot end) override
 
void VisitPointers (Tagged< HeapObject > host, MaybeObjectSlot start, MaybeObjectSlot end) override
 
void VisitInstructionStreamPointer (Tagged< Code > host, InstructionStreamSlot slot) override
 
void VisitCustomWeakPointers (Tagged< HeapObject > host, ObjectSlot start, ObjectSlot end) override
 
void VisitPointer (Tagged< HeapObject > host, ObjectSlot slot) override
 
void VisitPointer (Tagged< HeapObject > host, MaybeObjectSlot slot) override
 
void VisitCustomWeakPointer (Tagged< HeapObject > host, ObjectSlot slot) override
 
void VisitCodeTarget (Tagged< InstructionStream > host, RelocInfo *rinfo) override
 
void VisitEmbeddedPointer (Tagged< InstructionStream > host, RelocInfo *rinfo) override
 
void VisitExternalReference (Tagged< InstructionStream > host, RelocInfo *rinfo) override
 
void VisitInternalReference (Tagged< InstructionStream > host, RelocInfo *rinfo) override
 
void VisitOffHeapTarget (Tagged< InstructionStream > host, RelocInfo *rinfo) override
 
void VisitExternalPointer (Tagged< HeapObject > host, ExternalPointerSlot slot) override
 
void VisitCppHeapPointer (Tagged< HeapObject > host, CppHeapPointerSlot slot) override
 
void VisitEphemeron (Tagged< HeapObject > host, int index, ObjectSlot key, ObjectSlot value) override
 
void VisitIndirectPointer (Tagged< HeapObject > host, IndirectPointerSlot slot, IndirectPointerMode mode) override
 
void VisitProtectedPointer (Tagged< TrustedObject > host, ProtectedPointerSlot slot) override
 
void VisitProtectedPointer (Tagged< TrustedObject > host, ProtectedMaybeObjectSlot slot) override
 
void VisitTrustedPointerTableEntry (Tagged< HeapObject > host, IndirectPointerSlot slot) override
 
void VisitJSDispatchTableEntry (Tagged< HeapObject > host, JSDispatchHandle handle) override
 
void VisitMapPointer (Tagged< HeapObject > host) override
 
- Public Member Functions inherited from v8::internal::HeapVisitor< ObjectVisitorForwarder >
 HeapVisitor (LocalIsolate *isolate)
 
 HeapVisitor (Isolate *isolate)
 
 HeapVisitor (Heap *heap)
 
V8_INLINE size_t Visit (Tagged< HeapObject > object)
 
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object)
 
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, int object_size)
 
void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
size_t VisitJSObjectSubclass (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
size_t VisitWithBodyDescriptor (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Public Member Functions inherited from v8::internal::ObjectVisitorWithCageBases
 ObjectVisitorWithCageBases (PtrComprCageBase cage_base, PtrComprCageBase code_cage_base)
 
 ObjectVisitorWithCageBases (Isolate *isolate)
 
 ObjectVisitorWithCageBases (Heap *heap)
 
PtrComprCageBase cage_base () const
 
PtrComprCageBase code_cage_base () const
 
- Public Member Functions inherited from v8::internal::ObjectVisitor
virtual ~ObjectVisitor ()=default
 
void VisitRelocInfo (Tagged< InstructionStream > host, RelocIterator *it)
 

Static Public Member Functions

static constexpr bool ShouldVisitMapPointer ()
 
static constexpr bool ShouldUseUncheckedCast ()
 
static constexpr bool ShouldVisitFullJSObject ()
 

Private Attributes

ObjectVisitor *const visitor_
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::HeapVisitor< ObjectVisitorForwarder >
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
ObjectVisitorForwarderconcrete_visitor ()
 
const ObjectVisitorForwarderconcrete_visitor () const
 
V8_INLINE size_t VisitShortcutCandidate (Tagged< Map > map, Tagged< ConsString > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSObjectFast (Tagged< Map > map, Tagged< JSObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSApiObject (Tagged< Map > map, Tagged< JSObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitStruct (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitFiller (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitFreeSpace (Tagged< Map > map, Tagged< FreeSpace > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSObjectSubclass (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitWithBodyDescriptor (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
std::optional< Tagged< Object > > GetObjectFilterReadOnlyAndSmiFast (TSlot slot) const
 
- Static Protected Member Functions inherited from v8::internal::HeapVisitor< ObjectVisitorForwarder >
static V8_INLINE constexpr bool ShouldVisitMapPointer ()
 
static V8_INLINE constexpr bool ShouldVisitReadOnlyMapPointer ()
 
static V8_INLINE constexpr bool CanEncounterFillerOrFreeSpace ()
 
static V8_INLINE constexpr bool ShouldUseUncheckedCast ()
 
static V8_INLINE constexpr bool EnableConcurrentVisitation ()
 
static V8_INLINE constexpr bool UsePrecomputedObjectSize ()
 
static V8_INLINE constexpr bool ShouldVisitFullJSObject ()
 
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Protected Attributes inherited from v8::internal::HeapVisitor< ObjectVisitorForwarder >
const Heapheap_
 

Detailed Description

Definition at line 16 of file visit-object.cc.

Constructor & Destructor Documentation

◆ ObjectVisitorForwarder() [1/2]

v8::internal::ObjectVisitorForwarder::ObjectVisitorForwarder ( Isolate * isolate,
ObjectVisitor * visitor )
inlineexplicit

Definition at line 19 of file visit-object.cc.

◆ ObjectVisitorForwarder() [2/2]

v8::internal::ObjectVisitorForwarder::ObjectVisitorForwarder ( LocalIsolate * isolate,
ObjectVisitor * visitor )
inlineexplicit

Definition at line 21 of file visit-object.cc.

Member Function Documentation

◆ ShouldUseUncheckedCast()

static constexpr bool v8::internal::ObjectVisitorForwarder::ShouldUseUncheckedCast ( )
inlinestaticconstexpr

Definition at line 25 of file visit-object.cc.

◆ ShouldVisitFullJSObject()

static constexpr bool v8::internal::ObjectVisitorForwarder::ShouldVisitFullJSObject ( )
inlinestaticconstexpr

Definition at line 26 of file visit-object.cc.

◆ ShouldVisitMapPointer()

static constexpr bool v8::internal::ObjectVisitorForwarder::ShouldVisitMapPointer ( )
inlinestaticconstexpr

Definition at line 24 of file visit-object.cc.

◆ VisitCodeTarget()

void v8::internal::ObjectVisitorForwarder::VisitCodeTarget ( Tagged< InstructionStream > host,
RelocInfo * rinfo )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 61 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitCppHeapPointer()

void v8::internal::ObjectVisitorForwarder::VisitCppHeapPointer ( Tagged< HeapObject > host,
CppHeapPointerSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 91 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitCustomWeakPointer()

void v8::internal::ObjectVisitorForwarder::VisitCustomWeakPointer ( Tagged< HeapObject > host,
ObjectSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 56 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitCustomWeakPointers()

void v8::internal::ObjectVisitorForwarder::VisitCustomWeakPointers ( Tagged< HeapObject > host,
ObjectSlot start,
ObjectSlot end )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 43 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitEmbeddedPointer()

void v8::internal::ObjectVisitorForwarder::VisitEmbeddedPointer ( Tagged< InstructionStream > host,
RelocInfo * rinfo )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 66 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitEphemeron()

void v8::internal::ObjectVisitorForwarder::VisitEphemeron ( Tagged< HeapObject > host,
int index,
ObjectSlot key,
ObjectSlot value )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 96 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitExternalPointer()

void v8::internal::ObjectVisitorForwarder::VisitExternalPointer ( Tagged< HeapObject > host,
ExternalPointerSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 86 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitExternalReference()

void v8::internal::ObjectVisitorForwarder::VisitExternalReference ( Tagged< InstructionStream > host,
RelocInfo * rinfo )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 71 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitIndirectPointer()

void v8::internal::ObjectVisitorForwarder::VisitIndirectPointer ( Tagged< HeapObject > host,
IndirectPointerSlot slot,
IndirectPointerMode mode )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 101 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitInstructionStreamPointer()

void v8::internal::ObjectVisitorForwarder::VisitInstructionStreamPointer ( Tagged< Code > host,
InstructionStreamSlot slot )
inlineoverridevirtual

Implements v8::internal::ObjectVisitor.

Definition at line 38 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitInternalReference()

void v8::internal::ObjectVisitorForwarder::VisitInternalReference ( Tagged< InstructionStream > host,
RelocInfo * rinfo )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 76 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitJSDispatchTableEntry()

void v8::internal::ObjectVisitorForwarder::VisitJSDispatchTableEntry ( Tagged< HeapObject > host,
JSDispatchHandle handle )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 121 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitMapPointer()

void v8::internal::ObjectVisitorForwarder::VisitMapPointer ( Tagged< HeapObject > host)
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 126 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitOffHeapTarget()

void v8::internal::ObjectVisitorForwarder::VisitOffHeapTarget ( Tagged< InstructionStream > host,
RelocInfo * rinfo )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 81 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitPointer() [1/2]

void v8::internal::ObjectVisitorForwarder::VisitPointer ( Tagged< HeapObject > host,
MaybeObjectSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 52 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitPointer() [2/2]

void v8::internal::ObjectVisitorForwarder::VisitPointer ( Tagged< HeapObject > host,
ObjectSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 48 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitPointers() [1/2]

void v8::internal::ObjectVisitorForwarder::VisitPointers ( Tagged< HeapObject > host,
MaybeObjectSlot start,
MaybeObjectSlot end )
inlineoverridevirtual

Implements v8::internal::ObjectVisitor.

Definition at line 33 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitPointers() [2/2]

void v8::internal::ObjectVisitorForwarder::VisitPointers ( Tagged< HeapObject > host,
ObjectSlot start,
ObjectSlot end )
inlineoverridevirtual

Implements v8::internal::ObjectVisitor.

Definition at line 28 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitProtectedPointer() [1/2]

void v8::internal::ObjectVisitorForwarder::VisitProtectedPointer ( Tagged< TrustedObject > host,
ProtectedMaybeObjectSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 111 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitProtectedPointer() [2/2]

void v8::internal::ObjectVisitorForwarder::VisitProtectedPointer ( Tagged< TrustedObject > host,
ProtectedPointerSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 106 of file visit-object.cc.

Here is the call graph for this function:

◆ VisitTrustedPointerTableEntry()

void v8::internal::ObjectVisitorForwarder::VisitTrustedPointerTableEntry ( Tagged< HeapObject > host,
IndirectPointerSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 116 of file visit-object.cc.

Here is the call graph for this function:

Member Data Documentation

◆ visitor_

ObjectVisitor* const v8::internal::ObjectVisitorForwarder::visitor_
private

Definition at line 129 of file visit-object.cc.


The documentation for this class was generated from the following file: