Commit 8394db37d80 for nodejs

commit 8394db37d8004219fa30985675d5e6a4cac63556
Author: Michaël Zasso <targos@protonmail.com>
Date:   Wed Feb 18 07:52:32 2026 +0100

    tools: update V8 gypfiles for 14.8

    Co-Authored-By: Joyee Cheung <joyeec9h3@gmail.com>
    Signed-Off-By: Michaël Zasso <targos@protonmail.com>
    Signed-off-by: Joyee Cheung <joyeec9h3@gmail.com>
    PR-URL: https://github.com/nodejs/node/pull/65161
    Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
    Reviewed-By: Richard Lau <richard.lau@ibm.com>

diff --git a/tools/v8_gypfiles/GN-scraper.py b/tools/v8_gypfiles/GN-scraper.py
index 654ccf3159a..885b66b46a0 100644
--- a/tools/v8_gypfiles/GN-scraper.py
+++ b/tools/v8_gypfiles/GN-scraper.py
@@ -13,6 +13,8 @@ def DoMain(args):

   scraper_re = re.compile(pattern + r'\[([^\]]+)', re.DOTALL)
   matches = scraper_re.search(gn_content)
+  if not matches:
+    raise Exception('Pattern "%s" not found in %s' % (pattern, gn_filename))
   match = matches.group(1)
   files = []
   for l in match.splitlines():
diff --git a/tools/v8_gypfiles/abseil.gyp b/tools/v8_gypfiles/abseil.gyp
index 1a1de337860..a0bd2f1d9a3 100644
--- a/tools/v8_gypfiles/abseil.gyp
+++ b/tools/v8_gypfiles/abseil.gyp
@@ -63,8 +63,6 @@
         '<(ABSEIL_ROOT)/absl/base/internal/sysinfo.cc',
         '<(ABSEIL_ROOT)/absl/base/internal/thread_identity.h',
         '<(ABSEIL_ROOT)/absl/base/internal/thread_identity.cc',
-        '<(ABSEIL_ROOT)/absl/base/internal/throw_delegate.h',
-        '<(ABSEIL_ROOT)/absl/base/internal/throw_delegate.cc',
         '<(ABSEIL_ROOT)/absl/base/internal/tracing.h',
         '<(ABSEIL_ROOT)/absl/base/internal/tracing.cc',
         '<(ABSEIL_ROOT)/absl/base/internal/tsan_mutex_interface.h',
@@ -84,6 +82,8 @@
         '<(ABSEIL_ROOT)/absl/base/port.h',
         '<(ABSEIL_ROOT)/absl/base/prefetch.h',
         '<(ABSEIL_ROOT)/absl/base/thread_annotations.h',
+        '<(ABSEIL_ROOT)/absl/base/throw_delegate.h',
+        '<(ABSEIL_ROOT)/absl/base/throw_delegate.cc',
         '<(ABSEIL_ROOT)/absl/cleanup/cleanup.h',
         '<(ABSEIL_ROOT)/absl/cleanup/internal/cleanup.h',
         '<(ABSEIL_ROOT)/absl/container/btree_map.h',
@@ -139,8 +139,6 @@
         '<(ABSEIL_ROOT)/absl/debugging/failure_signal_handler.cc',
         '<(ABSEIL_ROOT)/absl/debugging/internal/address_is_readable.h',
         '<(ABSEIL_ROOT)/absl/debugging/internal/address_is_readable.cc',
-        '<(ABSEIL_ROOT)/absl/debugging/internal/borrowed_fixup_buffer.h',
-        '<(ABSEIL_ROOT)/absl/debugging/internal/borrowed_fixup_buffer.cc',
         '<(ABSEIL_ROOT)/absl/debugging/internal/bounded_utf8_length_sequence.h',
         '<(ABSEIL_ROOT)/absl/debugging/internal/decode_rust_punycode.h',
         '<(ABSEIL_ROOT)/absl/debugging/internal/decode_rust_punycode.cc',
@@ -335,6 +333,8 @@
         '<(ABSEIL_ROOT)/absl/time/civil_time.cc',
         '<(ABSEIL_ROOT)/absl/time/clock.h',
         '<(ABSEIL_ROOT)/absl/time/clock.cc',
+        '<(ABSEIL_ROOT)/absl/time/clock_interface.h',
+        '<(ABSEIL_ROOT)/absl/time/clock_interface.cc',
         '<(ABSEIL_ROOT)/absl/time/duration.cc',
         '<(ABSEIL_ROOT)/absl/time/format.cc',
         '<(ABSEIL_ROOT)/absl/time/internal/cctz/include/cctz/civil_time.h',
@@ -360,6 +360,8 @@
         '<(ABSEIL_ROOT)/absl/time/internal/cctz/src/zone_info_source.cc',
         '<(ABSEIL_ROOT)/absl/time/internal/get_current_time_chrono.inc',
         '<(ABSEIL_ROOT)/absl/time/internal/get_current_time_posix.inc',
+        '<(ABSEIL_ROOT)/absl/time/simulated_clock.h',
+        '<(ABSEIL_ROOT)/absl/time/simulated_clock.cc',
         '<(ABSEIL_ROOT)/absl/time/time.h',
         '<(ABSEIL_ROOT)/absl/time/time.cc',
         '<(ABSEIL_ROOT)/absl/types/any.h',
diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi
index 5bf6b6f5de4..04ad6339194 100644
--- a/tools/v8_gypfiles/features.gypi
+++ b/tools/v8_gypfiles/features.gypi
@@ -238,9 +238,6 @@
     # Sets -DV8_ENABLE_SANDBOX.
     'v8_enable_sandbox%': 0,

-    # Enable leaptiering
-    'v8_enable_leaptiering%': 1,
-
     # Enable support for external code range relative to the pointer compression
     # cage.
     # Sets -DV8_EXTERNAL_CODE_SPACE.
@@ -294,6 +291,9 @@
     # ReadOnlySpace.
     'v8_enable_extensible_ro_snapshot%': 1,

+    # Use the encoding of undefined in double values.
+    'v8_enable_undefined_double%': 1,
+
     # Variables from v8.gni

     # Enable ECMAScript Internationalization API. Enabling this feature will
@@ -516,8 +516,8 @@
       ['v8_enable_extensible_ro_snapshot==1', {
         'defines': ['V8_ENABLE_EXTENSIBLE_RO_SNAPSHOT',],
       }],
-      ['v8_enable_leaptiering==1', {
-        'defines': ['V8_ENABLE_LEAPTIERING',],
+      ['v8_enable_undefined_double==1', {
+        'defines': ['V8_ENABLE_UNDEFINED_DOUBLE',],
       }],
       ['v8_enable_precise_zone_stats==1', {
         'defines': ['V8_ENABLE_PRECISE_ZONE_STATS',],
diff --git a/tools/v8_gypfiles/toolchain.gypi b/tools/v8_gypfiles/toolchain.gypi
index 3676848df8a..44d34a07d05 100644
--- a/tools/v8_gypfiles/toolchain.gypi
+++ b/tools/v8_gypfiles/toolchain.gypi
@@ -158,31 +158,12 @@
       ['v8_target_arch=="arm"', {
         'defines': [
           'V8_TARGET_ARCH_ARM',
+          'CAN_USE_ARMV7_INSTRUCTIONS',
+          'CAN_USE_VFP3_INSTRUCTIONS',
+          'CAN_USE_VFP32DREGS',
+          'CAN_USE_NEON',
         ],
         'conditions': [
-          [ 'arm_version==7 or arm_version=="default"', {
-            'defines': [
-              'CAN_USE_ARMV7_INSTRUCTIONS',
-            ],
-          }],
-          [ 'arm_fpu=="vfpv3-d16" or arm_fpu=="default"', {
-            'defines': [
-              'CAN_USE_VFP3_INSTRUCTIONS',
-            ],
-          }],
-          [ 'arm_fpu=="vfpv3"', {
-            'defines': [
-              'CAN_USE_VFP3_INSTRUCTIONS',
-              'CAN_USE_VFP32DREGS',
-            ],
-          }],
-          [ 'arm_fpu=="neon"', {
-            'defines': [
-              'CAN_USE_VFP3_INSTRUCTIONS',
-              'CAN_USE_VFP32DREGS',
-              'CAN_USE_NEON',
-            ],
-          }],
           [ 'arm_test_noprobe=="on"', {
             'defines': [
               'ARM_TEST_NO_FEATURE_PROBE',
diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
index fd8394b3708..194bacde050 100644
--- a/tools/v8_gypfiles/v8.gyp
+++ b/tools/v8_gypfiles/v8.gyp
@@ -1510,6 +1510,41 @@
       ],

       'conditions': [
+        ['v8_target_arch=="ia32" or v8_target_arch=="x64"', {
+          'sources': [
+            '<(V8_ROOT)/src/base/cpu/cpu-x86.cc',
+          ],
+        }],
+        ['v8_target_arch=="arm" or v8_target_arch=="arm64"', {
+          'sources': [
+            '<(V8_ROOT)/src/base/cpu/cpu-arm.cc',
+          ],
+        }],
+        ['v8_target_arch=="riscv64"', {
+          'sources': [
+            '<(V8_ROOT)/src/base/cpu/cpu-riscv.cc',
+          ],
+        }],
+        ['v8_target_arch=="loong64"', {
+          'sources': [
+            '<(V8_ROOT)/src/base/cpu/cpu-loong64.cc',
+          ],
+        }],
+        ['v8_target_arch=="mips64" or v8_target_arch=="mips64el"', {
+          'sources': [
+            '<(V8_ROOT)/src/base/cpu/cpu-mips64.cc',
+          ],
+        }],
+        ['v8_target_arch=="ppc64"', {
+          'sources': [
+            '<(V8_ROOT)/src/base/cpu/cpu-ppc.cc',
+          ],
+        }],
+        ['v8_target_arch=="s390x"', {
+          'sources': [
+            '<(V8_ROOT)/src/base/cpu/cpu-s390.cc',
+          ],
+        }],
         ['is_component_build', {
           'defines': ["BUILDING_V8_BASE_SHARED"],
         }],
@@ -2115,7 +2150,7 @@
       'toolsets': ['host', 'target'],
       'direct_dependent_settings': {
         'sources': [
-          '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn"  "v8_source_set.\\"cppgc_base.*?sources = ")',
+          '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn"  "v8_cluster_source_set.\\"cppgc_base.*?sources = ")',
         ],
         'conditions': [
           ['v8_use_perfetto==1', {
@@ -2319,6 +2354,10 @@
           '<(V8_ROOT)/src/objects/casting-inl.h',
           '<(V8_ROOT)/src/objects/code.h',
           '<(V8_ROOT)/src/objects/code-inl.h',
+          '<(V8_ROOT)/src/objects/cpp-heap-external-object.h',
+          '<(V8_ROOT)/src/objects/cpp-heap-external-object-inl.h',
+          '<(V8_ROOT)/src/objects/cpp-heap-object-wrapper.h',
+          '<(V8_ROOT)/src/objects/cpp-heap-object-wrapper-inl.h',
           '<(V8_ROOT)/src/objects/data-handler.h',
           '<(V8_ROOT)/src/objects/data-handler-inl.h',
           '<(V8_ROOT)/src/objects/deoptimization-data.h',
@@ -2373,6 +2412,7 @@
           '<(V8_ROOT)/src/objects/primitive-heap-object-inl.h',
           '<(V8_ROOT)/src/objects/scope-info.h',
           '<(V8_ROOT)/src/objects/scope-info-inl.h',
+          '<(V8_ROOT)/src/objects/script.cc',
           '<(V8_ROOT)/src/objects/script.h',
           '<(V8_ROOT)/src/objects/script-inl.h',
           '<(V8_ROOT)/src/objects/shared-function-info.cc',
@@ -2386,6 +2426,7 @@
           '<(V8_ROOT)/src/objects/struct.h',
           '<(V8_ROOT)/src/objects/struct-inl.h',
           '<(V8_ROOT)/src/objects/tagged.h',
+          '<(V8_ROOT)/src/objects/union.h',
         ],
       },
       'actions': [