diff options
author | Matheus Marchini <mmarchini@netflix.com> | 2020-03-05 10:49:19 -0800 |
---|---|---|
committer | Matheus Marchini <mmarchini@netflix.com> | 2020-03-18 16:23:22 -0700 |
commit | 2883c855e0105b51e5c8020d21458af109ffe3d4 (patch) | |
tree | 26777aad0a398e9f7755c8b65ac76827fe352a81 /deps/v8/src/execution/frames.cc | |
parent | 5f0af2af2a67216e00fe07ccda11e889d14abfcd (diff) | |
download | node-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.cc | 31 |
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)); |