File tree 7 files changed +21
-9
lines changed
7 files changed +21
-9
lines changed Original file line number Diff line number Diff line change 37
37
38
38
# Reset this number to 0 on major V8 upgrades.
39
39
# Increment by one for each non-official patch applied to deps/v8.
40
- 'v8_embedder_string' : '-node.3 ' ,
40
+ 'v8_embedder_string' : '-node.4 ' ,
41
41
42
42
##### V8 defaults for Node.js #####
43
43
Original file line number Diff line number Diff line change @@ -879,7 +879,7 @@ ElementAccessFeedback const& JSHeapBroker::ProcessFeedbackMapsForElementAccess(
879
879
Tagged<Map> transition_target;
880
880
881
881
// Don't generate elements kind transitions from stable maps.
882
- if (!map.is_stable ()) {
882
+ if (!map.is_stable () && possible_transition_targets. begin () != possible_transition_targets. end () ) {
883
883
// The lock is needed for UnusedPropertyFields (called deep inside
884
884
// FindElementsKindTransitionedMap).
885
885
MapUpdaterGuardIfNeeded mumd_scope (this );
Original file line number Diff line number Diff line change @@ -1292,11 +1292,11 @@ class WasmFrame : public TypedFrame {
1292
1292
FrameSummaries Summarize () const override ;
1293
1293
1294
1294
static WasmFrame* cast (StackFrame* frame) {
1295
- DCHECK (frame->is_wasm ()
1296
1295
#ifdef V8_ENABLE_DRUMBRAKE
1297
- && !frame->is_wasm_interpreter_entry ()
1296
+ DCHECK (frame->is_wasm () && !frame->is_wasm_interpreter_entry ());
1297
+ #else
1298
+ DCHECK (frame->is_wasm ());
1298
1299
#endif // V8_ENABLE_DRUMBRAKE
1299
- );
1300
1300
return static_cast <WasmFrame*>(frame);
1301
1301
}
1302
1302
Original file line number Diff line number Diff line change @@ -564,10 +564,14 @@ using DebugObjectCache = std::vector<Handle<HeapObject>>;
564
564
#define THREAD_LOCAL_TOP_ADDRESS (type, name ) \
565
565
inline type* name##_address() { return &thread_local_top ()->name ##_; }
566
566
567
+ #if defined(_MSC_VER)
568
+ extern thread_local Isolate* g_current_isolate_ V8_CONSTINIT;
569
+ #else
567
570
// Do not use this variable directly, use Isolate::Current() instead.
568
571
// Defined outside of Isolate because Isolate uses V8_EXPORT_PRIVATE.
569
572
__attribute__ ((tls_model(V8_TLS_MODEL))) extern thread_local Isolate*
570
573
g_current_isolate_ V8_CONSTINIT;
574
+ #endif // defined(_MSC_VER)
571
575
572
576
// HiddenFactory exists so Isolate can privately inherit from it without making
573
577
// Factory's members available to Isolate directly.
Original file line number Diff line number Diff line change @@ -33,10 +33,14 @@ class MarkingBarrier;
33
33
class MutablePageMetadata ;
34
34
class Safepoint ;
35
35
36
+ #if defined(_MSC_VER)
37
+ extern thread_local LocalHeap* g_current_local_heap_ V8_CONSTINIT;
38
+ #else
36
39
// Do not use this variable directly, use LocalHeap::Current() instead.
37
40
// Defined outside of LocalHeap because LocalHeap uses V8_EXPORT_PRIVATE.
38
41
__attribute__ ((tls_model(V8_TLS_MODEL))) extern thread_local LocalHeap*
39
42
g_current_local_heap_ V8_CONSTINIT;
43
+ #endif // defined(_MSC_VER)
40
44
41
45
// LocalHeap is used by the GC to track all threads with heap access in order to
42
46
// stop them before performing a collection. LocalHeaps can be either Parked or
Original file line number Diff line number Diff line change @@ -121,12 +121,10 @@ static_assert(sizeof(UnalignedDoubleMember) == sizeof(double));
121
121
#define FLEXIBLE_ARRAY_MEMBER (Type, name ) \
122
122
using FlexibleDataReturnType = Type[0 ]; \
123
123
FlexibleDataReturnType& name () { \
124
- static_assert (alignof (Type) <= alignof (decltype (*this ))); \
125
124
using ReturnType = Type[0 ]; \
126
125
return reinterpret_cast <ReturnType&>(*(this + 1 )); \
127
126
} \
128
127
const FlexibleDataReturnType& name () const { \
129
- static_assert (alignof (Type) <= alignof (decltype (*this ))); \
130
128
using ReturnType = Type[0 ]; \
131
129
return reinterpret_cast <const ReturnType&>(*(this + 1 )); \
132
130
} \
Original file line number Diff line number Diff line change @@ -2763,15 +2763,21 @@ DirectHandle<WasmExportedFunction> WasmExportedFunction::New(
2763
2763
DirectHandle<WasmFuncRef> func_ref,
2764
2764
DirectHandle<WasmInternalFunction> internal_function, int arity,
2765
2765
DirectHandle<Code> export_wrapper) {
2766
+ #if V8_ENABLE_DRUMBRAKE
2766
2767
DCHECK (CodeKind::JS_TO_WASM_FUNCTION == export_wrapper->kind () ||
2767
2768
(export_wrapper->is_builtin () &&
2768
2769
(export_wrapper->builtin_id () == Builtin::kJSToWasmWrapper ||
2769
- #if V8_ENABLE_DRUMBRAKE
2770
2770
export_wrapper->builtin_id () ==
2771
2771
Builtin::kGenericJSToWasmInterpreterWrapper ||
2772
- #endif // V8_ENABLE_DRUMBRAKE
2773
2772
export_wrapper->builtin_id () == Builtin::kWasmPromising ||
2774
2773
export_wrapper->builtin_id () == Builtin::kWasmStressSwitch )));
2774
+ #else
2775
+ DCHECK (CodeKind::JS_TO_WASM_FUNCTION == export_wrapper->kind () ||
2776
+ (export_wrapper->is_builtin () &&
2777
+ (export_wrapper->builtin_id () == Builtin::kJSToWasmWrapper ||
2778
+ export_wrapper->builtin_id () == Builtin::kWasmPromising ||
2779
+ export_wrapper->builtin_id () == Builtin::kWasmStressSwitch )));
2780
+ #endif // V8_ENABLE_DRUMBRAKE
2775
2781
int func_index = internal_function->function_index ();
2776
2782
Factory* factory = isolate->factory ();
2777
2783
DirectHandle<Map> rtt;
You can’t perform that action at this time.
0 commit comments