| Index: src/frames.h
|
| diff --git a/src/frames.h b/src/frames.h
|
| index fb786df539d7b31d6a1a53ad8f6482c411d75973..99e2b256879d3fa79b667de5d581e45795387edf 100644
|
| --- a/src/frames.h
|
| +++ b/src/frames.h
|
| @@ -111,6 +111,7 @@ class StackHandler BASE_EMBEDDED {
|
| V(INTERPRETED, InterpretedFrame) \
|
| V(STUB, StubFrame) \
|
| V(STUB_FAILURE_TRAMPOLINE, StubFailureTrampolineFrame) \
|
| + V(BUILTIN_CONTINUATION, BuiltinContinuationFrame) \
|
| V(INTERNAL, InternalFrame) \
|
| V(CONSTRUCT, ConstructFrame) \
|
| V(ARGUMENTS_ADAPTOR, ArgumentsAdaptorFrame) \
|
| @@ -523,6 +524,9 @@ class StackFrame BASE_EMBEDDED {
|
| bool is_stub_failure_trampoline() const {
|
| return type() == STUB_FAILURE_TRAMPOLINE;
|
| }
|
| + bool is_builtin_continuation() const {
|
| + return type() == BUILTIN_CONTINUATION;
|
| + }
|
| bool is_construct() const { return type() == CONSTRUCT; }
|
| bool is_builtin_exit() const { return type() == BUILTIN_EXIT; }
|
| virtual bool is_standard() const { return false; }
|
| @@ -1458,6 +1462,21 @@ class ConstructFrame: public InternalFrame {
|
| friend class StackFrameIteratorBase;
|
| };
|
|
|
| +class BuiltinContinuationFrame : public InternalFrame {
|
| + public:
|
| + Type type() const override { return BUILTIN_CONTINUATION; }
|
| +
|
| + static BuiltinContinuationFrame* cast(StackFrame* frame) {
|
| + DCHECK(frame->is_builtin_continuation());
|
| + return static_cast<BuiltinContinuationFrame*>(frame);
|
| + }
|
| +
|
| + protected:
|
| + inline explicit BuiltinContinuationFrame(StackFrameIteratorBase* iterator);
|
| +
|
| + private:
|
| + friend class StackFrameIteratorBase;
|
| +};
|
|
|
| class StackFrameIteratorBase BASE_EMBEDDED {
|
| public:
|
|
|