0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-24 03:07:54 +01:00

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>
This commit is contained in:
StefanStojanovic 2024-04-21 11:15:04 +02:00 committed by Node.js GitHub Bot
parent 6f4f22f84c
commit 1866363854
5 changed files with 12 additions and 9 deletions

View File

@ -36,7 +36,7 @@
# Reset this number to 0 on major V8 upgrades.
# 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 #####

View File

@ -861,7 +861,7 @@ ElementAccessFeedback const& JSHeapBroker::ProcessFeedbackMapsForElementAccess(
Tagged<Map> transition_target;
// 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
// FindElementsKindTransitionedMap).
MapUpdaterGuardIfNeeded mumd_scope(this);

View File

@ -1269,11 +1269,11 @@ class WasmFrame : public TypedFrame {
void Summarize(std::vector<FrameSummary>* frames) const override;
static WasmFrame* cast(StackFrame* frame) {
DCHECK(frame->is_wasm()
#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
);
return static_cast<WasmFrame*>(frame);
}

View File

@ -101,12 +101,10 @@ static_assert(sizeof(UnalignedDoubleMember) == sizeof(double));
#define FLEXIBLE_ARRAY_MEMBER(Type, name) \
using FlexibleDataReturnType = Type[0]; \
FlexibleDataReturnType& name() { \
static_assert(alignof(Type) <= alignof(decltype(*this))); \
using ReturnType = Type[0]; \
return reinterpret_cast<ReturnType&>(*(this + 1)); \
} \
const FlexibleDataReturnType& name() const { \
static_assert(alignof(Type) <= alignof(decltype(*this))); \
using ReturnType = Type[0]; \
return reinterpret_cast<const ReturnType&>(*(this + 1)); \
} \

View File

@ -2455,14 +2455,19 @@ Handle<WasmExportedFunction> WasmExportedFunction::New(
DirectHandle<WasmFuncRef> func_ref,
DirectHandle<WasmInternalFunction> internal_function, int arity,
DirectHandle<Code> export_wrapper) {
#if V8_ENABLE_DRUMBRAKE
DCHECK(CodeKind::JS_TO_WASM_FUNCTION == export_wrapper->kind() ||
(export_wrapper->is_builtin() &&
(export_wrapper->builtin_id() == Builtin::kJSToWasmWrapper ||
#if V8_ENABLE_DRUMBRAKE
export_wrapper->builtin_id() ==
Builtin::kGenericJSToWasmInterpreterWrapper ||
#endif // V8_ENABLE_DRUMBRAKE
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();
Factory* factory = isolate->factory();
const wasm::WasmModule* module = instance_data->module();