deps: patch V8 to support compilation with MSVC
Co-Authored-By: Michaël Zasso <targos@protonmail.com> PR-URL: https://github.com/nodejs/node/pull/54536 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com> PR-URL: https://github.com/nodejs/node/pull/55014 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
This commit is contained in:
parent
a4e0fce896
commit
d0361f0bba
@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
# Reset this number to 0 on major V8 upgrades.
|
# Reset this number to 0 on major V8 upgrades.
|
||||||
# Increment by one for each non-official patch applied to deps/v8.
|
# Increment by one for each non-official patch applied to deps/v8.
|
||||||
'v8_embedder_string': '-node.3',
|
'v8_embedder_string': '-node.4',
|
||||||
|
|
||||||
##### V8 defaults for Node.js #####
|
##### V8 defaults for Node.js #####
|
||||||
|
|
||||||
|
2
deps/v8/src/compiler/js-heap-broker.cc
vendored
2
deps/v8/src/compiler/js-heap-broker.cc
vendored
@ -861,7 +861,7 @@ ElementAccessFeedback const& JSHeapBroker::ProcessFeedbackMapsForElementAccess(
|
|||||||
Tagged<Map> transition_target;
|
Tagged<Map> transition_target;
|
||||||
|
|
||||||
// Don't generate elements kind transitions from stable maps.
|
// Don't generate elements kind transitions from stable maps.
|
||||||
if (!map.is_stable()) {
|
if (!map.is_stable() && possible_transition_targets.begin() != possible_transition_targets.end()) {
|
||||||
// The lock is needed for UnusedPropertyFields (called deep inside
|
// The lock is needed for UnusedPropertyFields (called deep inside
|
||||||
// FindElementsKindTransitionedMap).
|
// FindElementsKindTransitionedMap).
|
||||||
MapUpdaterGuardIfNeeded mumd_scope(this);
|
MapUpdaterGuardIfNeeded mumd_scope(this);
|
||||||
|
6
deps/v8/src/execution/frames.h
vendored
6
deps/v8/src/execution/frames.h
vendored
@ -1260,11 +1260,11 @@ class WasmFrame : public TypedFrame {
|
|||||||
void Summarize(std::vector<FrameSummary>* frames) const override;
|
void Summarize(std::vector<FrameSummary>* frames) const override;
|
||||||
|
|
||||||
static WasmFrame* cast(StackFrame* frame) {
|
static WasmFrame* cast(StackFrame* frame) {
|
||||||
DCHECK(frame->is_wasm()
|
|
||||||
#ifdef V8_ENABLE_DRUMBRAKE
|
#ifdef V8_ENABLE_DRUMBRAKE
|
||||||
&& !frame->is_wasm_interpreter_entry()
|
DCHECK(frame->is_wasm() && !frame->is_wasm_interpreter_entry());
|
||||||
|
#else
|
||||||
|
DCHECK(frame->is_wasm());
|
||||||
#endif // V8_ENABLE_DRUMBRAKE
|
#endif // V8_ENABLE_DRUMBRAKE
|
||||||
);
|
|
||||||
return static_cast<WasmFrame*>(frame);
|
return static_cast<WasmFrame*>(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
deps/v8/src/objects/tagged-field.h
vendored
2
deps/v8/src/objects/tagged-field.h
vendored
@ -101,12 +101,10 @@ static_assert(sizeof(UnalignedDoubleMember) == sizeof(double));
|
|||||||
#define FLEXIBLE_ARRAY_MEMBER(Type, name) \
|
#define FLEXIBLE_ARRAY_MEMBER(Type, name) \
|
||||||
using FlexibleDataReturnType = Type[0]; \
|
using FlexibleDataReturnType = Type[0]; \
|
||||||
FlexibleDataReturnType& name() { \
|
FlexibleDataReturnType& name() { \
|
||||||
static_assert(alignof(Type) <= alignof(decltype(*this))); \
|
|
||||||
using ReturnType = Type[0]; \
|
using ReturnType = Type[0]; \
|
||||||
return reinterpret_cast<ReturnType&>(*(this + 1)); \
|
return reinterpret_cast<ReturnType&>(*(this + 1)); \
|
||||||
} \
|
} \
|
||||||
const FlexibleDataReturnType& name() const { \
|
const FlexibleDataReturnType& name() const { \
|
||||||
static_assert(alignof(Type) <= alignof(decltype(*this))); \
|
|
||||||
using ReturnType = Type[0]; \
|
using ReturnType = Type[0]; \
|
||||||
return reinterpret_cast<const ReturnType&>(*(this + 1)); \
|
return reinterpret_cast<const ReturnType&>(*(this + 1)); \
|
||||||
} \
|
} \
|
||||||
|
9
deps/v8/src/wasm/wasm-objects.cc
vendored
9
deps/v8/src/wasm/wasm-objects.cc
vendored
@ -2578,14 +2578,19 @@ Handle<WasmExportedFunction> WasmExportedFunction::New(
|
|||||||
DirectHandle<WasmFuncRef> func_ref,
|
DirectHandle<WasmFuncRef> func_ref,
|
||||||
DirectHandle<WasmInternalFunction> internal_function, int arity,
|
DirectHandle<WasmInternalFunction> internal_function, int arity,
|
||||||
DirectHandle<Code> export_wrapper) {
|
DirectHandle<Code> export_wrapper) {
|
||||||
|
#if V8_ENABLE_DRUMBRAKE
|
||||||
DCHECK(CodeKind::JS_TO_WASM_FUNCTION == export_wrapper->kind() ||
|
DCHECK(CodeKind::JS_TO_WASM_FUNCTION == export_wrapper->kind() ||
|
||||||
(export_wrapper->is_builtin() &&
|
(export_wrapper->is_builtin() &&
|
||||||
(export_wrapper->builtin_id() == Builtin::kJSToWasmWrapper ||
|
(export_wrapper->builtin_id() == Builtin::kJSToWasmWrapper ||
|
||||||
#if V8_ENABLE_DRUMBRAKE
|
|
||||||
export_wrapper->builtin_id() ==
|
export_wrapper->builtin_id() ==
|
||||||
Builtin::kGenericJSToWasmInterpreterWrapper ||
|
Builtin::kGenericJSToWasmInterpreterWrapper ||
|
||||||
#endif // V8_ENABLE_DRUMBRAKE
|
|
||||||
export_wrapper->builtin_id() == Builtin::kWasmPromising)));
|
export_wrapper->builtin_id() == Builtin::kWasmPromising)));
|
||||||
|
#else
|
||||||
|
DCHECK(CodeKind::JS_TO_WASM_FUNCTION == export_wrapper->kind() ||
|
||||||
|
(export_wrapper->is_builtin() &&
|
||||||
|
(export_wrapper->builtin_id() == Builtin::kJSToWasmWrapper ||
|
||||||
|
export_wrapper->builtin_id() == Builtin::kWasmPromising)));
|
||||||
|
#endif // V8_ENABLE_DRUMBRAKE
|
||||||
int func_index = internal_function->function_index();
|
int func_index = internal_function->function_index();
|
||||||
Factory* factory = isolate->factory();
|
Factory* factory = isolate->factory();
|
||||||
const wasm::WasmModule* module = instance_data->module();
|
const wasm::WasmModule* module = instance_data->module();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user