| 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
|
|
|