Index: src/frames.h |
diff --git a/src/frames.h b/src/frames.h |
index f33eb167414af18081c82864dde237c3f5a46c2e..24f2e876358434009e0211f57ceb27e9d3abe6d2 100644 |
--- a/src/frames.h |
+++ b/src/frames.h |
@@ -97,13 +97,13 @@ class StackHandler BASE_EMBEDDED { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StackHandler); |
}; |
- |
#define STACK_FRAME_TYPE_LIST(V) \ |
V(ENTRY, EntryFrame) \ |
V(ENTRY_CONSTRUCT, EntryConstructFrame) \ |
V(EXIT, ExitFrame) \ |
V(JAVA_SCRIPT, JavaScriptFrame) \ |
V(OPTIMIZED, OptimizedFrame) \ |
+ V(WASM, WasmFrame) \ |
V(INTERPRETED, InterpretedFrame) \ |
V(STUB, StubFrame) \ |
V(STUB_FAILURE_TRAMPOLINE, StubFailureTrampolineFrame) \ |
@@ -310,6 +310,7 @@ class StackFrame BASE_EMBEDDED { |
bool is_exit() const { return type() == EXIT; } |
bool is_optimized() const { return type() == OPTIMIZED; } |
bool is_interpreted() const { return type() == INTERPRETED; } |
+ bool is_wasm() const { return type() == WASM; } |
bool is_arguments_adaptor() const { return type() == ARGUMENTS_ADAPTOR; } |
bool is_internal() const { return type() == INTERNAL; } |
bool is_stub_failure_trampoline() const { |
@@ -617,8 +618,7 @@ class FrameSummary BASE_EMBEDDED { |
bool is_constructor_; |
}; |
- |
-class JavaScriptFrame: public StandardFrame { |
+class JavaScriptFrame : public StandardFrame { |
public: |
Type type() const override { return JAVA_SCRIPT; } |
@@ -841,6 +841,28 @@ class ArgumentsAdaptorFrame: public JavaScriptFrame { |
friend class StackFrameIteratorBase; |
}; |
+class WasmFrame : public StandardFrame { |
+ public: |
+ Type type() const override { return WASM; } |
+ |
+ // GC support. |
+ void Iterate(ObjectVisitor* v) const override; |
+ |
+ // Printing support. |
+ void Print(StringStream* accumulator, PrintMode mode, |
+ int index) const override; |
+ |
+ // Determine the code for the frame. |
+ Code* unchecked_code() const override; |
+ |
+ protected: |
+ inline explicit WasmFrame(StackFrameIteratorBase* iterator); |
+ |
+ Address GetCallerStackPointer() const override; |
+ |
+ private: |
+ friend class StackFrameIteratorBase; |
+}; |
class InternalFrame: public StandardFrame { |
public: |
@@ -974,7 +996,6 @@ class StackFrameIterator: public StackFrameIteratorBase { |
DISALLOW_COPY_AND_ASSIGN(StackFrameIterator); |
}; |
- |
// Iterator that supports iterating through all JavaScript frames. |
class JavaScriptFrameIterator BASE_EMBEDDED { |
public: |
@@ -997,7 +1018,6 @@ class JavaScriptFrameIterator BASE_EMBEDDED { |
StackFrameIterator iterator_; |
}; |
- |
// NOTE: The stack trace frame iterator is an iterator that only |
// traverse proper JavaScript frames; that is JavaScript frames that |
// have proper JavaScript functions. This excludes the problematic |