summaryrefslogtreecommitdiff
path: root/deps/v8/src/frames.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/frames.h')
-rw-r--r--deps/v8/src/frames.h57
1 files changed, 40 insertions, 17 deletions
diff --git a/deps/v8/src/frames.h b/deps/v8/src/frames.h
index 2bea6a3ca3..d8438acfd7 100644
--- a/deps/v8/src/frames.h
+++ b/deps/v8/src/frames.h
@@ -93,7 +93,6 @@ class StackHandler BASE_EMBEDDED {
V(OPTIMIZED, OptimizedFrame) \
V(WASM_COMPILED, WasmCompiledFrame) \
V(WASM_TO_JS, WasmToJsFrame) \
- V(WASM_TO_WASM, WasmToWasmFrame) \
V(JS_TO_WASM, JsToWasmFrame) \
V(WASM_INTERPRETER_ENTRY, WasmInterpreterEntryFrame) \
V(C_WASM_ENTRY, CWasmEntryFrame) \
@@ -101,6 +100,8 @@ class StackHandler BASE_EMBEDDED {
V(STUB, StubFrame) \
V(BUILTIN_CONTINUATION, BuiltinContinuationFrame) \
V(JAVA_SCRIPT_BUILTIN_CONTINUATION, JavaScriptBuiltinContinuationFrame) \
+ V(JAVA_SCRIPT_BUILTIN_CONTINUATION_WITH_CATCH, \
+ JavaScriptBuiltinContinuationWithCatchFrame) \
V(INTERNAL, InternalFrame) \
V(CONSTRUCT, ConstructFrame) \
V(ARGUMENTS_ADAPTOR, ArgumentsAdaptorFrame) \
@@ -214,6 +215,9 @@ class StackFrame BASE_EMBEDDED {
bool is_java_script_builtin_continuation() const {
return type() == JAVA_SCRIPT_BUILTIN_CONTINUATION;
}
+ bool is_java_script_builtin_with_catch_continuation() const {
+ return type() == JAVA_SCRIPT_BUILTIN_CONTINUATION_WITH_CATCH;
+ }
bool is_construct() const { return type() == CONSTRUCT; }
bool is_builtin_exit() const { return type() == BUILTIN_EXIT; }
virtual bool is_standard() const { return false; }
@@ -221,7 +225,8 @@ class StackFrame BASE_EMBEDDED {
bool is_java_script() const {
Type type = this->type();
return (type == OPTIMIZED) || (type == INTERPRETED) || (type == BUILTIN) ||
- (type == JAVA_SCRIPT_BUILTIN_CONTINUATION);
+ (type == JAVA_SCRIPT_BUILTIN_CONTINUATION) ||
+ (type == JAVA_SCRIPT_BUILTIN_CONTINUATION_WITH_CATCH);
}
bool is_wasm() const {
Type type = this->type();
@@ -549,16 +554,16 @@ class FrameSummary BASE_EMBEDDED {
class WasmCompiledFrameSummary : public WasmFrameSummary {
public:
WasmCompiledFrameSummary(Isolate*, Handle<WasmInstanceObject>,
- WasmCodeWrapper, int code_offset,
+ wasm::WasmCode*, int code_offset,
bool at_to_number_conversion);
uint32_t function_index() const;
- WasmCodeWrapper code() const { return code_; }
+ wasm::WasmCode* code() const { return code_; }
int code_offset() const { return code_offset_; }
int byte_offset() const;
static int GetWasmSourcePosition(const wasm::WasmCode* code, int offset);
private:
- WasmCodeWrapper const code_;
+ wasm::WasmCode* const code_;
int code_offset_;
};
@@ -848,6 +853,8 @@ class OptimizedFrame : public JavaScriptFrame {
protected:
inline explicit OptimizedFrame(StackFrameIteratorBase* iterator);
+ int GetNumberOfIncomingArguments() const override;
+
private:
friend class StackFrameIteratorBase;
@@ -973,7 +980,7 @@ class WasmCompiledFrame final : public StandardFrame {
// Accessors.
WasmInstanceObject* wasm_instance() const; // TODO(titzer): deprecate.
- WasmCodeWrapper wasm_code() const;
+ wasm::WasmCode* wasm_code() const;
uint32_t function_index() const;
Script* script() const override;
int position() const override;
@@ -1059,17 +1066,6 @@ class JsToWasmFrame : public StubFrame {
friend class StackFrameIteratorBase;
};
-class WasmToWasmFrame : public StubFrame {
- public:
- Type type() const override { return WASM_TO_WASM; }
-
- protected:
- inline explicit WasmToWasmFrame(StackFrameIteratorBase* iterator);
-
- private:
- friend class StackFrameIteratorBase;
-};
-
class CWasmEntryFrame : public StubFrame {
public:
Type type() const override { return C_WASM_ENTRY; }
@@ -1150,6 +1146,9 @@ class JavaScriptBuiltinContinuationFrame : public JavaScriptFrame {
}
int ComputeParametersCount() const override;
+ intptr_t GetSPToFPDelta() const;
+
+ Object* context() const override;
protected:
inline explicit JavaScriptBuiltinContinuationFrame(
@@ -1159,6 +1158,30 @@ class JavaScriptBuiltinContinuationFrame : public JavaScriptFrame {
friend class StackFrameIteratorBase;
};
+class JavaScriptBuiltinContinuationWithCatchFrame
+ : public JavaScriptBuiltinContinuationFrame {
+ public:
+ Type type() const override {
+ return JAVA_SCRIPT_BUILTIN_CONTINUATION_WITH_CATCH;
+ }
+
+ static JavaScriptBuiltinContinuationWithCatchFrame* cast(StackFrame* frame) {
+ DCHECK(frame->is_java_script_builtin_with_catch_continuation());
+ return static_cast<JavaScriptBuiltinContinuationWithCatchFrame*>(frame);
+ }
+
+ // Patch in the exception object at the appropriate location into the stack
+ // frame.
+ void SetException(Object* exception);
+
+ protected:
+ inline explicit JavaScriptBuiltinContinuationWithCatchFrame(
+ StackFrameIteratorBase* iterator);
+
+ private:
+ friend class StackFrameIteratorBase;
+};
+
class StackFrameIteratorBase BASE_EMBEDDED {
public:
Isolate* isolate() const { return isolate_; }