summaryrefslogtreecommitdiff
path: root/deps/v8/src/execution/frames.cc
diff options
context:
space:
mode:
authorMatheus Marchini <mmarchini@netflix.com>2020-03-05 10:49:19 -0800
committerMatheus Marchini <mmarchini@netflix.com>2020-03-18 16:23:22 -0700
commit2883c855e0105b51e5c8020d21458af109ffe3d4 (patch)
tree26777aad0a398e9f7755c8b65ac76827fe352a81 /deps/v8/src/execution/frames.cc
parent5f0af2af2a67216e00fe07ccda11e889d14abfcd (diff)
downloadnode-new-2883c855e0105b51e5c8020d21458af109ffe3d4.tar.gz
deps: update V8 to 8.1.307.20
PR-URL: https://github.com/nodejs/node/pull/32116 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'deps/v8/src/execution/frames.cc')
-rw-r--r--deps/v8/src/execution/frames.cc31
1 files changed, 23 insertions, 8 deletions
diff --git a/deps/v8/src/execution/frames.cc b/deps/v8/src/execution/frames.cc
index 04768a365c..8337a63e17 100644
--- a/deps/v8/src/execution/frames.cc
+++ b/deps/v8/src/execution/frames.cc
@@ -455,7 +455,10 @@ void SafeStackFrameIterator::Advance() {
last_callback_scope = external_callback_scope_;
external_callback_scope_ = external_callback_scope_->previous();
}
- if (frame_->is_java_script() || frame_->is_wasm()) break;
+ if (frame_->is_java_script() || frame_->is_wasm() ||
+ frame_->is_wasm_to_js()) {
+ break;
+ }
if (frame_->is_exit() || frame_->is_builtin_exit()) {
// Some of the EXIT frames may have ExternalCallbackScope allocated on
// top of them. In that case the scope corresponds to the first EXIT
@@ -489,7 +492,8 @@ Code StackFrame::LookupCode() const {
void StackFrame::IteratePc(RootVisitor* v, Address* pc_address,
Address* constant_pool_address, Code holder) {
Address pc = *pc_address;
- DCHECK(holder.GetHeap()->GcSafeCodeContains(holder, pc));
+ DCHECK(ReadOnlyHeap::Contains(holder) ||
+ holder.GetHeap()->GcSafeCodeContains(holder, pc));
unsigned pc_offset = static_cast<unsigned>(pc - holder.InstructionStart());
Object code = holder;
v->VisitRootPointer(Root::kTop, nullptr, FullObjectSlot(&code));
@@ -1316,7 +1320,7 @@ Object JavaScriptBuiltinContinuationFrame::context() const {
void JavaScriptBuiltinContinuationWithCatchFrame::SetException(
Object exception) {
Address exception_argument_slot =
- fp() + JavaScriptFrameConstants::kLastParameterOffset +
+ fp() + BuiltinContinuationFrameConstants::kFixedFrameSizeAboveFp +
kSystemPointerSize; // Skip over return value slot.
// Only allow setting exception if previous value was the hole.
@@ -1413,11 +1417,9 @@ WASM_SUMMARY_DISPATCH(int, byte_offset)
#undef WASM_SUMMARY_DISPATCH
int FrameSummary::WasmFrameSummary::SourcePosition() const {
- Handle<WasmModuleObject> module_object(wasm_instance()->module_object(),
- isolate());
- return WasmModuleObject::GetSourcePosition(module_object, function_index(),
- byte_offset(),
- at_to_number_conversion());
+ const wasm::WasmModule* module = wasm_instance()->module_object().module();
+ return GetSourcePosition(module, function_index(), byte_offset(),
+ at_to_number_conversion());
}
Handle<Script> FrameSummary::WasmFrameSummary::script() const {
@@ -1899,6 +1901,10 @@ WasmInstanceObject WasmCompiledFrame::wasm_instance() const {
return WasmInstanceObject::cast(instance);
}
+wasm::NativeModule* WasmCompiledFrame::native_module() const {
+ return module_object().native_module();
+}
+
WasmModuleObject WasmCompiledFrame::module_object() const {
return wasm_instance().module_object();
}
@@ -1913,6 +1919,10 @@ int WasmCompiledFrame::position() const {
return FrameSummary::GetSingle(this).SourcePosition();
}
+Object WasmCompiledFrame::context() const {
+ return wasm_instance().native_context();
+}
+
void WasmCompiledFrame::Summarize(std::vector<FrameSummary>* functions) const {
DCHECK(functions->empty());
// The {WasmCode*} escapes this scope via the {FrameSummary}, which is fine,
@@ -1983,6 +1993,11 @@ void WasmInterpreterEntryFrame::Summarize(
Code WasmInterpreterEntryFrame::unchecked_code() const { return Code(); }
+int WasmInterpreterEntryFrame::NumberOfActiveFrames() const {
+ Handle<WasmInstanceObject> instance(wasm_instance(), isolate());
+ return instance->debug_info().NumberOfActiveFrames(fp());
+}
+
WasmInstanceObject WasmInterpreterEntryFrame::wasm_instance() const {
const int offset = WasmCompiledFrameConstants::kWasmInstanceOffset;
Object instance(Memory<Address>(fp() + offset));