Skip to content

Commit 6ce589f

Browse files
committed
deps: patch V8 to 6.6.346.31
PR-URL: #20603 Refs: v8/v8@6.6.346.27...6.6.346.31 Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Michaël Zasso <[email protected]>
1 parent 1160d61 commit 6ce589f

17 files changed

+409
-38
lines changed

deps/v8/include/v8-version.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#define V8_MAJOR_VERSION 6
1212
#define V8_MINOR_VERSION 6
1313
#define V8_BUILD_NUMBER 346
14-
#define V8_PATCH_LEVEL 27
14+
#define V8_PATCH_LEVEL 31
1515

1616
// Use 1 for candidates and 0 otherwise.
1717
// (Boolean macro values are not supported by all preprocessors.)

deps/v8/src/builtins/arm/builtins-arm.cc

+6-2
Original file line numberDiff line numberDiff line change
@@ -859,9 +859,13 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
859859
Label process_bytecode, extra_wide;
860860
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
861861
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
862-
__ cmp(bytecode, Operand(0x1));
862+
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
863+
STATIC_ASSERT(3 ==
864+
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
865+
__ cmp(bytecode, Operand(0x3));
863866
__ b(hi, &process_bytecode);
864-
__ b(eq, &extra_wide);
867+
__ tst(bytecode, Operand(0x1));
868+
__ b(ne, &extra_wide);
865869

866870
// Load the next bytecode and update table to the wide scaled table.
867871
__ add(bytecode_offset, bytecode_offset, Operand(1));

deps/v8/src/builtins/arm64/builtins-arm64.cc

+6-2
Original file line numberDiff line numberDiff line change
@@ -952,9 +952,13 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
952952
Label process_bytecode, extra_wide;
953953
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
954954
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
955-
__ Cmp(bytecode, Operand(0x1));
955+
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
956+
STATIC_ASSERT(3 ==
957+
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
958+
__ Cmp(bytecode, Operand(0x3));
956959
__ B(hi, &process_bytecode);
957-
__ B(eq, &extra_wide);
960+
__ Tst(bytecode, Operand(0x1));
961+
__ B(ne, &extra_wide);
958962

959963
// Load the next bytecode and update table to the wide scaled table.
960964
__ Add(bytecode_offset, bytecode_offset, Operand(1));

deps/v8/src/builtins/builtins-promise-gen.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,7 @@ TF_BUILTIN(PromiseResolveThenableJob, PromiseBuiltinsAssembler) {
999999
// We need to reject the {thenable}.
10001000
Node* const result = CallJS(
10011001
CodeFactory::Call(isolate(), ConvertReceiverMode::kNullOrUndefined),
1002-
native_context, UndefinedConstant(), var_exception.value());
1002+
native_context, reject, UndefinedConstant(), var_exception.value());
10031003
Return(result);
10041004
}
10051005
}

deps/v8/src/builtins/ia32/builtins-ia32.cc

+6-2
Original file line numberDiff line numberDiff line change
@@ -783,9 +783,13 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
783783
Label process_bytecode, extra_wide;
784784
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
785785
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
786-
__ cmpb(bytecode, Immediate(0x1));
786+
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
787+
STATIC_ASSERT(3 ==
788+
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
789+
__ cmpb(bytecode, Immediate(0x3));
787790
__ j(above, &process_bytecode, Label::kNear);
788-
__ j(equal, &extra_wide, Label::kNear);
791+
__ test(bytecode, Immediate(0x1));
792+
__ j(not_equal, &extra_wide, Label::kNear);
789793

790794
// Load the next bytecode and update table to the wide scaled table.
791795
__ inc(bytecode_offset);

deps/v8/src/builtins/mips/builtins-mips.cc

+6-2
Original file line numberDiff line numberDiff line change
@@ -840,8 +840,12 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
840840
Label process_bytecode, extra_wide;
841841
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
842842
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
843-
__ Branch(&process_bytecode, hi, bytecode, Operand(1));
844-
__ Branch(&extra_wide, eq, bytecode, Operand(1));
843+
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
844+
STATIC_ASSERT(3 ==
845+
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
846+
__ Branch(&process_bytecode, hi, bytecode, Operand(3));
847+
__ And(scratch2, bytecode, Operand(1));
848+
__ Branch(&extra_wide, ne, scratch2, Operand(zero_reg));
845849

846850
// Load the next bytecode and update table to the wide scaled table.
847851
__ Addu(bytecode_offset, bytecode_offset, Operand(1));

deps/v8/src/builtins/mips64/builtins-mips64.cc

+6-2
Original file line numberDiff line numberDiff line change
@@ -837,8 +837,12 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
837837
Label process_bytecode, extra_wide;
838838
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
839839
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
840-
__ Branch(&process_bytecode, hi, bytecode, Operand(1));
841-
__ Branch(&extra_wide, eq, bytecode, Operand(1));
840+
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
841+
STATIC_ASSERT(3 ==
842+
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
843+
__ Branch(&process_bytecode, hi, bytecode, Operand(3));
844+
__ And(scratch2, bytecode, Operand(1));
845+
__ Branch(&extra_wide, ne, scratch2, Operand(zero_reg));
842846

843847
// Load the next bytecode and update table to the wide scaled table.
844848
__ Daddu(bytecode_offset, bytecode_offset, Operand(1));

deps/v8/src/builtins/ppc/builtins-ppc.cc

+6-2
Original file line numberDiff line numberDiff line change
@@ -859,9 +859,13 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
859859
Label process_bytecode, extra_wide;
860860
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
861861
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
862-
__ cmpi(bytecode, Operand(0x1));
862+
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
863+
STATIC_ASSERT(3 ==
864+
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
865+
__ cmpi(bytecode, Operand(0x3));
863866
__ bgt(&process_bytecode);
864-
__ beq(&extra_wide);
867+
__ andi(r0, bytecode, Operand(0x1));
868+
__ bne(&extra_wide, cr0);
865869

866870
// Load the next bytecode and update table to the wide scaled table.
867871
__ addi(bytecode_offset, bytecode_offset, Operand(1));

deps/v8/src/builtins/s390/builtins-s390.cc

+6-2
Original file line numberDiff line numberDiff line change
@@ -861,9 +861,13 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
861861
Label process_bytecode, extra_wide;
862862
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
863863
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
864-
__ CmpP(bytecode, Operand(0x1));
864+
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
865+
STATIC_ASSERT(3 ==
866+
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
867+
__ CmpP(bytecode, Operand(0x3));
865868
__ bgt(&process_bytecode);
866-
__ beq(&extra_wide);
869+
__ tmll(bytecode, Operand(0x1));
870+
__ bne(&extra_wide);
867871

868872
// Load the next bytecode and update table to the wide scaled table.
869873
__ AddP(bytecode_offset, bytecode_offset, Operand(1));

deps/v8/src/builtins/x64/builtins-x64.cc

+6-2
Original file line numberDiff line numberDiff line change
@@ -848,9 +848,13 @@ static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
848848
Label process_bytecode, extra_wide;
849849
STATIC_ASSERT(0 == static_cast<int>(interpreter::Bytecode::kWide));
850850
STATIC_ASSERT(1 == static_cast<int>(interpreter::Bytecode::kExtraWide));
851-
__ cmpb(bytecode, Immediate(0x1));
851+
STATIC_ASSERT(2 == static_cast<int>(interpreter::Bytecode::kDebugBreakWide));
852+
STATIC_ASSERT(3 ==
853+
static_cast<int>(interpreter::Bytecode::kDebugBreakExtraWide));
854+
__ cmpb(bytecode, Immediate(0x3));
852855
__ j(above, &process_bytecode, Label::kNear);
853-
__ j(equal, &extra_wide, Label::kNear);
856+
__ testb(bytecode, Immediate(0x1));
857+
__ j(not_equal, &extra_wide, Label::kNear);
854858

855859
// Load the next bytecode and update table to the wide scaled table.
856860
__ incl(bytecode_offset);

deps/v8/src/compiler/js-call-reducer.cc

+4-3
Original file line numberDiff line numberDiff line change
@@ -5135,6 +5135,7 @@ Reduction JSCallReducer::ReducePromisePrototypeThen(Node* node) {
51355135
Node* context = NodeProperties::GetContextInput(node);
51365136
Node* effect = NodeProperties::GetEffectInput(node);
51375137
Node* control = NodeProperties::GetControlInput(node);
5138+
Node* frame_state = NodeProperties::GetFrameStateInput(node);
51385139

51395140
// Check that promises aren't being observed through (debug) hooks.
51405141
if (!isolate()->IsPromiseHookProtectorIntact()) return NoChange();
@@ -5193,9 +5194,9 @@ Reduction JSCallReducer::ReducePromisePrototypeThen(Node* node) {
51935194
graph()->NewNode(javascript()->CreatePromise(), context, effect);
51945195

51955196
// Chain {result} onto {receiver}.
5196-
result = effect = graph()->NewNode(javascript()->PerformPromiseThen(),
5197-
receiver, on_fulfilled, on_rejected,
5198-
result, context, effect, control);
5197+
result = effect = graph()->NewNode(
5198+
javascript()->PerformPromiseThen(), receiver, on_fulfilled, on_rejected,
5199+
result, context, frame_state, effect, control);
51995200
ReplaceWithValue(node, result, effect, control);
52005201
return Replace(result);
52015202
}

deps/v8/src/compiler/operator-properties.cc

+1
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ bool OperatorProperties::HasFrameStateInput(const Operator* op) {
118118
case IrOpcode::kJSPromiseResolve:
119119
case IrOpcode::kJSRejectPromise:
120120
case IrOpcode::kJSResolvePromise:
121+
case IrOpcode::kJSPerformPromiseThen:
121122
return true;
122123

123124
default:

deps/v8/src/interpreter/bytecodes.h

+17-17
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,23 @@ namespace interpreter {
2828
V(Wide, AccumulatorUse::kNone) \
2929
V(ExtraWide, AccumulatorUse::kNone) \
3030
\
31+
/* Debug Breakpoints - one for each possible size of unscaled bytecodes */ \
32+
/* and one for each operand widening prefix bytecode */ \
33+
V(DebugBreakWide, AccumulatorUse::kReadWrite) \
34+
V(DebugBreakExtraWide, AccumulatorUse::kReadWrite) \
35+
V(DebugBreak0, AccumulatorUse::kReadWrite) \
36+
V(DebugBreak1, AccumulatorUse::kReadWrite, OperandType::kReg) \
37+
V(DebugBreak2, AccumulatorUse::kReadWrite, OperandType::kReg, \
38+
OperandType::kReg) \
39+
V(DebugBreak3, AccumulatorUse::kReadWrite, OperandType::kReg, \
40+
OperandType::kReg, OperandType::kReg) \
41+
V(DebugBreak4, AccumulatorUse::kReadWrite, OperandType::kReg, \
42+
OperandType::kReg, OperandType::kReg, OperandType::kReg) \
43+
V(DebugBreak5, AccumulatorUse::kReadWrite, OperandType::kRuntimeId, \
44+
OperandType::kReg, OperandType::kReg) \
45+
V(DebugBreak6, AccumulatorUse::kReadWrite, OperandType::kRuntimeId, \
46+
OperandType::kReg, OperandType::kReg, OperandType::kReg) \
47+
\
3148
/* Loading the accumulator */ \
3249
V(LdaZero, AccumulatorUse::kWrite) \
3350
V(LdaSmi, AccumulatorUse::kWrite, OperandType::kImm) \
@@ -325,23 +342,6 @@ namespace interpreter {
325342
/* Debugger */ \
326343
V(Debugger, AccumulatorUse::kNone) \
327344
\
328-
/* Debug Breakpoints - one for each possible size of unscaled bytecodes */ \
329-
/* and one for each operand widening prefix bytecode */ \
330-
V(DebugBreak0, AccumulatorUse::kReadWrite) \
331-
V(DebugBreak1, AccumulatorUse::kReadWrite, OperandType::kReg) \
332-
V(DebugBreak2, AccumulatorUse::kReadWrite, OperandType::kReg, \
333-
OperandType::kReg) \
334-
V(DebugBreak3, AccumulatorUse::kReadWrite, OperandType::kReg, \
335-
OperandType::kReg, OperandType::kReg) \
336-
V(DebugBreak4, AccumulatorUse::kReadWrite, OperandType::kReg, \
337-
OperandType::kReg, OperandType::kReg, OperandType::kReg) \
338-
V(DebugBreak5, AccumulatorUse::kReadWrite, OperandType::kRuntimeId, \
339-
OperandType::kReg, OperandType::kReg) \
340-
V(DebugBreak6, AccumulatorUse::kReadWrite, OperandType::kRuntimeId, \
341-
OperandType::kReg, OperandType::kReg, OperandType::kReg) \
342-
V(DebugBreakWide, AccumulatorUse::kReadWrite) \
343-
V(DebugBreakExtraWide, AccumulatorUse::kReadWrite) \
344-
\
345345
/* Block Coverage */ \
346346
V(IncBlockCounter, AccumulatorUse::kNone, OperandType::kIdx) \
347347
\

deps/v8/test/cctest/test-api.cc

+29
Original file line numberDiff line numberDiff line change
@@ -17641,6 +17641,35 @@ TEST(PromiseRejectCallback) {
1764117641
CHECK_EQ(7, promise_reject_msg_column_number);
1764217642
}
1764317643

17644+
void PromiseRejectCallbackConstructError(
17645+
v8::PromiseRejectMessage reject_message) {
17646+
v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext();
17647+
CHECK_EQ(v8::Promise::PromiseState::kRejected,
17648+
reject_message.GetPromise()->State());
17649+
USE(v8::Script::Compile(context, v8_str("new Error('test')"))
17650+
.ToLocalChecked()
17651+
->Run(context));
17652+
}
17653+
17654+
TEST(PromiseRejectCallbackConstructError) {
17655+
i::FLAG_allow_natives_syntax = true;
17656+
LocalContext env;
17657+
v8::Isolate* isolate = env->GetIsolate();
17658+
v8::HandleScope scope(isolate);
17659+
17660+
isolate->SetPromiseRejectCallback(PromiseRejectCallbackConstructError);
17661+
17662+
ResetPromiseStates();
17663+
CompileRun(
17664+
"function f(p) {"
17665+
" p.catch(() => {});"
17666+
"}"
17667+
"f(Promise.reject());"
17668+
"f(Promise.reject());"
17669+
"%OptimizeFunctionOnNextCall(f);"
17670+
"let p = Promise.reject();"
17671+
"f(p);");
17672+
}
1764417673

1764517674
void AnalyzeStackOfEvalWithSourceURL(
1764617675
const v8::FunctionCallbackInfo<v8::Value>& args) {

0 commit comments

Comments
 (0)