deps: patch V8 to 10.1.124.8 · nodejs/node@e938515 · GitHub
Skip to content

Commit e938515

Browse files
authored
deps: patch V8 to 10.1.124.8
Refs: v8/v8@10.1.124.6...10.1.124.8 PR-URL: #42730 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Beth Griggs <bgriggs@redhat.com>
1 parent 93c4dc5 commit e938515

3 files changed

Lines changed: 49 additions & 17 deletions

File tree

deps/v8/include/v8-version.h

Lines changed: 1 addition & 1 deletion

deps/v8/src/compiler/escape-analysis.cc

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
#include "src/compiler/escape-analysis.h"
66

77
#include "src/codegen/tick-counter.h"
8+
#include "src/compiler/frame-states.h"
89
#include "src/compiler/linkage.h"
910
#include "src/compiler/node-matchers.h"
1011
#include "src/compiler/operator-properties.h"
1112
#include "src/compiler/simplified-operator.h"
13+
#include "src/compiler/state-values-utils.h"
1214
#include "src/handles/handles-inl.h"
1315
#include "src/init/bootstrapper.h"
1416
#include "src/objects/map-inl.h"
@@ -224,6 +226,11 @@ class EscapeAnalysisTracker : public ZoneObject {
224226
return tracker_->ResolveReplacement(
225227
NodeProperties::GetContextInput(current_node()));
226228
}
229+
// Accessing the current node is fine for `FrameState nodes.
230+
Node* CurrentNode() {
231+
DCHECK_EQ(current_node()->opcode(), IrOpcode::kFrameState);
232+
return current_node();
233+
}
227234

228235
void SetReplacement(Node* replacement) {
229236
replacement_ = replacement;
@@ -799,9 +806,25 @@ void ReduceNode(const Operator* op, EscapeAnalysisTracker::Scope* current,
799806
break;
800807
}
801808
case IrOpcode::kStateValues:
802-
case IrOpcode::kFrameState:
803809
// These uses are always safe.
804810
break;
811+
case IrOpcode::kFrameState: {
812+
// We mark the receiver as escaping due to the non-standard `.getThis`
813+
// API.
814+
FrameState frame_state{current->CurrentNode()};
815+
if (frame_state.frame_state_info().type() !=
816+
FrameStateType::kUnoptimizedFunction)
817+
break;
818+
StateValuesAccess::iterator it =
819+
StateValuesAccess(frame_state.parameters()).begin();
820+
if (!it.done()) {
821+
if (Node* receiver = it.node()) {
822+
current->SetEscaped(receiver);
823+
}
824+
current->SetEscaped(frame_state.function());
825+
}
826+
break;
827+
}
805828
default: {
806829
// For unknown nodes, treat all value inputs as escaping.
807830
int value_input_count = op->ValueInputCount();

deps/v8/src/wasm/baseline/liftoff-compiler.cc

Lines changed: 24 additions & 15 deletions

0 commit comments

Comments
 (0)