Repository: nodejs/node
Pull request: deps: patch V8 to 13.7.152.13

This is an automated patch update of V8 to 13.7.152.13.

Changed files:
filename: deps/v8/include/v8-version.h
patch: @@ -11,7 +11,7 @@
 #define V8_MAJOR_VERSION 13
 #define V8_MINOR_VERSION 7
 #define V8_BUILD_NUMBER 152
-#define V8_PATCH_LEVEL 10
+#define V8_PATCH_LEVEL 13
 
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)

filename: deps/v8/infra/mb/mb_config.pyl
patch: @@ -953,7 +953,7 @@
     },
 
     'no_reclient': {
-      'gn_args': 'use_remoteexec=false',
+      'gn_args': 'use_remoteexec=false use_siso=false',
     },
 
     'no_sandbox': {
@@ -968,8 +968,11 @@
       'gn_args': 'v8_use_perfetto=true',
     },
 
+    # TODO(https://crbug.com/414724525): Temporarily use the reclient and siso
+    # configs synonym. In a follow up we'll drop the reclient parts and replace
+    # them with SISO configs.
     'reclient': {
-      'gn_args': 'use_remoteexec=true',
+      'gn_args': 'use_remoteexec=true use_siso=true',
     },
 
     'release': {

filename: deps/v8/src/compiler/representation-change.cc
patch: @@ -1344,7 +1344,12 @@ Node* RepresentationChanger::GetWord64RepresentationFor(
     }
   } else if (output_rep == MachineRepresentation::kTaggedSigned) {
     if (output_type.Is(Type::SignedSmall())) {
-      op = simplified()->ChangeTaggedSignedToInt64();
+      if (output_type.IsRange() && output_type.AsRange()->Min() >= 0) {
+        node = InsertChangeTaggedSignedToInt32(node);
+        op = machine()->ChangeUint32ToUint64();
+      } else {
+        op = simplified()->ChangeTaggedSignedToInt64();
+      }
     } else {
       return TypeError(node, output_rep, output_type,
                        MachineRepresentation::kWord64);

filename: deps/v8/src/compiler/turboshaft/store-store-elimination-reducer-inl.h
patch: @@ -325,10 +325,11 @@ class RedundantStoreAnalysis {
           // TODO(nicohartmann@): Use the new effect flags to distinguish heap
           // access once available.
           const bool is_on_heap_store = store.kind.tagged_base;
-          const bool is_field_store = !store.index().valid();
+          const bool is_fixed_offset_store = !store.index().valid();
           const uint8_t size = store.stored_rep.SizeInBytes();
-          // For now we consider only stores of fields of objects on the heap.
-          if (is_on_heap_store && is_field_store) {
+          // For now we consider only stores of fixed offsets of objects on the
+          // heap.
+          if (is_on_heap_store && is_fixed_offset_store) {
             bool is_eliminable_store = false;
             switch (table_.GetObservability(store.base(), store.offset, size)) {
               case StoreObservability::kUnobservable:
@@ -415,11 +416,16 @@ class RedundantStoreAnalysis {
           // TODO(nicohartmann@): Use the new effect flags to distinguish heap
           // access once available.
           const bool is_on_heap_load = load.kind.tagged_base;
-          const bool is_field_load = !load.index().valid();
+          const bool is_fixed_offset_load = !load.index().valid();
           // For now we consider only loads of fields of objects on the heap.
-          if (is_on_heap_load && is_field_load) {
-            table_.MarkPotentiallyAliasingStoresAsObservable(load.base(),
-                                                             load.offset);
+          if (is_on_heap_load) {
+            if (is_fixed_offset_load) {
+              table_.MarkPotentiallyAliasingStoresAsObservable(load.base(),
+                                                               load.offset);
+            } else {
+              // A dynamically indexed load might alias any fixed offset.
+              table_.MarkAllStoresAsObservable();
+            }
           }
           break;
         }