deps: patch V8 to support compilation with MSVC

After enabling -std:c++20 on Windows, patch is now much smaller.

PR-URL: https://github.com/nodejs/node/pull/52465
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
This commit is contained in:
StefanStojanovic 2024-04-21 11:15:04 +02:00 committed by Node.js GitHub Bot
parent b338202fab
commit 4728eb0f02
3 changed files with 7 additions and 6 deletions

View File

@ -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.7',
'v8_embedder_string': '-node.8',
##### V8 defaults for Node.js #####
@ -288,6 +288,8 @@
'/Zc:__cplusplus',
# The following option enables c++20 on Windows. This is needed for V8 v12.4+
'-std:c++20',
# The following option reduces the "error C1060: compiler is out of heap space"
'/Zm2000',
],
'BufferSecurityCheck': 'true',
'DebugInformationFormat': 1, # /Z7 embed info in .obj files

View File

@ -855,12 +855,13 @@ struct TurboshaftAdapter : public turboshaft::OperationMatcher {
*traps_on_null = load_->kind.trap_on_null;
#if V8_ENABLE_WEBASSEMBLY
} else {
DCHECK((load_transform_ && !load_transform_->load_kind.trap_on_null)
#if V8_ENABLE_WASM_SIMD256_REVEC
DCHECK((load_transform_ && !load_transform_->load_kind.trap_on_null)
|| (load_transform256_ &&
!load_transform256_->load_kind.trap_on_null)
!load_transform256_->load_kind.trap_on_null));
#else
DCHECK((load_transform_ && !load_transform_->load_kind.trap_on_null));
#endif // V8_ENABLE_WASM_SIMD256_REVEC
);
*traps_on_null = false;
#endif // V8_ENABLE_WEBASSEMBLY
}

View File

@ -100,12 +100,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)); \
} \