Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
deps: patch V8 to support compilation with MSVC
Co-Authored-By: Michaël Zasso <[email protected]>
PR-URL: #54536
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
  • Loading branch information
StefanStojanovic and targos committed Jan 30, 2025
commit 5ebad88d716a3c5d4e4f20c95f7b7a39cc491a77
2 changes: 1 addition & 1 deletion common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,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 #####

Expand Down
2 changes: 1 addition & 1 deletion deps/v8/src/compiler/js-heap-broker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
6 changes: 3 additions & 3 deletions deps/v8/src/execution/frames.h
Original file line number Diff line number Diff line change
Expand Up @@ -1260,11 +1260,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);
}

Expand Down
2 changes: 0 additions & 2 deletions deps/v8/src/objects/tagged-field.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)); \
} \
Expand Down
9 changes: 7 additions & 2 deletions deps/v8/src/wasm/wasm-objects.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2578,14 +2578,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();
Expand Down