| Index: src/frames.h | 
| diff --git a/src/frames.h b/src/frames.h | 
| index 990e4ffcc8385312d972a4837b5a6041dc4afa34..fb786df539d7b31d6a1a53ad8f6482c411d75973 100644 | 
| --- a/src/frames.h | 
| +++ b/src/frames.h | 
| @@ -36,6 +36,7 @@ int JSCallerSavedCode(int n); | 
| // Forward declarations. | 
| class ExternalCallbackScope; | 
| class Isolate; | 
| +class RootVisitor; | 
| class StackFrameIteratorBase; | 
| class ThreadLocalTop; | 
| class WasmInstanceObject; | 
| @@ -595,8 +596,8 @@ class StackFrame BASE_EMBEDDED { | 
| SafepointEntry* safepoint_entry, | 
| unsigned* stack_slots); | 
|  | 
| -  virtual void Iterate(ObjectVisitor* v) const = 0; | 
| -  static void IteratePc(ObjectVisitor* v, Address* pc_address, | 
| +  virtual void Iterate(RootVisitor* v) const = 0; | 
| +  static void IteratePc(RootVisitor* v, Address* pc_address, | 
| Address* constant_pool_address, Code* holder); | 
|  | 
| // Sets a callback function for return-address rewriting profilers | 
| @@ -667,7 +668,7 @@ class EntryFrame: public StackFrame { | 
| Code* unchecked_code() const override; | 
|  | 
| // Garbage collection support. | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| static EntryFrame* cast(StackFrame* frame) { | 
| DCHECK(frame->is_entry()); | 
| @@ -720,7 +721,7 @@ class ExitFrame: public StackFrame { | 
| Object*& code_slot() const; | 
|  | 
| // Garbage collection support. | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| void SetCallerFp(Address caller_fp) override; | 
|  | 
| @@ -999,7 +1000,7 @@ class StandardFrame : public StackFrame { | 
|  | 
| // Iterate over expression stack including stack handlers, locals, | 
| // and parts of the fixed part including context and code fields. | 
| -  void IterateExpressions(ObjectVisitor* v) const; | 
| +  void IterateExpressions(RootVisitor* v) const; | 
|  | 
| // Returns the address of the n'th expression stack element. | 
| virtual Address GetExpressionAddress(int n) const; | 
| @@ -1013,7 +1014,7 @@ class StandardFrame : public StackFrame { | 
| static inline bool IsConstructFrame(Address fp); | 
|  | 
| // Used by OptimizedFrames and StubFrames. | 
| -  void IterateCompiledFrame(ObjectVisitor* v) const; | 
| +  void IterateCompiledFrame(RootVisitor* v) const; | 
|  | 
| private: | 
| friend class StackFrame; | 
| @@ -1063,7 +1064,7 @@ class JavaScriptFrame : public StandardFrame { | 
| int GetArgumentsLength() const; | 
|  | 
| // Garbage collection support. | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| // Printing support. | 
| void Print(StringStream* accumulator, PrintMode mode, | 
| @@ -1115,7 +1116,7 @@ class JavaScriptFrame : public StandardFrame { | 
|  | 
| // Garbage collection support. Iterates over incoming arguments, | 
| // receiver, and any callee-saved registers. | 
| -  void IterateArguments(ObjectVisitor* v) const; | 
| +  void IterateArguments(RootVisitor* v) const; | 
|  | 
| virtual void PrintFrameKind(StringStream* accumulator) const {} | 
|  | 
| @@ -1131,7 +1132,7 @@ class StubFrame : public StandardFrame { | 
| Type type() const override { return STUB; } | 
|  | 
| // GC support. | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| // Determine the code for the frame. | 
| Code* unchecked_code() const override; | 
| @@ -1158,7 +1159,7 @@ class OptimizedFrame : public JavaScriptFrame { | 
| Type type() const override { return OPTIMIZED; } | 
|  | 
| // GC support. | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| // Return a list with {SharedFunctionInfo} objects of this frame. | 
| // The functions are ordered bottom-to-top (i.e. functions.last() | 
| @@ -1291,7 +1292,7 @@ class WasmCompiledFrame final : public StandardFrame { | 
| Type type() const override { return WASM_COMPILED; } | 
|  | 
| // GC support. | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| // Printing support. | 
| void Print(StringStream* accumulator, PrintMode mode, | 
| @@ -1333,7 +1334,7 @@ class WasmInterpreterEntryFrame final : public StandardFrame { | 
| Type type() const override { return WASM_INTERPRETER_ENTRY; } | 
|  | 
| // GC support. | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| // Printing support. | 
| void Print(StringStream* accumulator, PrintMode mode, | 
| @@ -1393,7 +1394,7 @@ class InternalFrame: public StandardFrame { | 
| Type type() const override { return INTERNAL; } | 
|  | 
| // Garbage collection support. | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| // Determine the code for the frame. | 
| Code* unchecked_code() const override; | 
| @@ -1421,7 +1422,7 @@ class StubFailureTrampolineFrame: public StandardFrame { | 
| // This method could be called during marking phase of GC. | 
| Code* unchecked_code() const override; | 
|  | 
| -  void Iterate(ObjectVisitor* v) const override; | 
| +  void Iterate(RootVisitor* v) const override; | 
|  | 
| // Architecture-specific register description. | 
| static Register fp_register(); | 
|  |