# Copyright 2021 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

load("@bazel_skylib//lib:selects.bzl", "selects")
load("@rules_python//python:defs.bzl", "py_binary")
load("@v8_python_deps//:requirements.bzl", "requirement")
load(
    "@v8//:bazel/defs.bzl",
    "v8_binary",
    "v8_build_config",
    "v8_config",
    "v8_custom_config",
    "v8_flag",
    "v8_int",
    "v8_library",
    "v8_mksnapshot",
    "v8_string",
    "v8_torque",
)
load(":bazel/v8-non-pointer-compression.bzl", "v8_binary_non_pointer_compression")

# =================================================
# Flags
# =================================================

# V8 GN flags not currently supported:
# v8_custom_deps
# v8_embed_script
# v8_embedder_string
# v8_promise_internal_field_count
# v8_enable_vtunejit
# v8_enable_vtunetracemark
# v8_enable_fast_torque
# v8_win64_unwinding_info
# v8_enable_31bit_smis_on_64bit_arch
# v8_enable_trace_unoptimized
# v8_enable_trace_ignition
# v8_enable_trace_baseline_exec
# v8_enable_trace_feedback_updates
# v8_enable_atomic_object_field_writes
# v8_enable_concurrent_marking
# v8_enable_ignition_dispatch_counting
# v8_enable_builtins_profiling
# v8_enable_builtins_profiling_verbose
# v8_builtins_profiling_log_file
# v8_enable_external_code_space
# v8_postmortem_support
# v8_use_siphash
# v8_no_inline
# v8_os_page_size
# v8_can_use_fpu_instructions
# v8_use_mips_abi_hardfloat
# v8_enable_gdbjit
# v8_check_header_includes
# v8_enable_shared_ro_heap
# v8_enable_lazy_source_positions
# v8_enable_third_party_heap
# v8_third_party_heap_files
# v8_disable_write_barriers
# v8_enable_unconditional_write_barriers
# v8_enable_single_generation
# v8_enable_regexp_interpreter_threaded_dispatch
# v8_verify_torque_generation_invariance
# v8_enable_snapshot_compression
# v8_control_flow_integrity
# v8_enable_sandbox
# cppgc_enable_caged_heap
# cppgc_enable_check_assignments_in_prefinalizers
# cppgc_enable_object_names
# cppgc_enable_verify_heap
# cppgc_enable_young_generation
# v8_enable_zone_compression
# v8_enable_precise_zone_stats
# v8_enable_swiss_name_dictionary
# v8_generate_external_defines_header
# v8_dict_property_const_tracking
# v8_enable_map_packing
# v8_enable_javascript_promise_hooks
# v8_enable_allocation_folding
# v8_allocation_site_tracking

v8_flag(name = "v8_android_log_stdout")

v8_flag(name = "v8_annotate_torque_ir")

v8_flag(name = "v8_code_comments")

v8_flag(
    name = "v8_deprecation_warnings",
    default = True,
)

v8_flag(
    name = "v8_imminent_deprecation_warnings",
    default = True,
)

v8_flag(name = "v8_enable_backtrace")

v8_flag(name = "v8_enable_debug_code")

v8_flag(name = "v8_enable_disassembler")

v8_flag(name = "v8_enable_handle_zapping")

v8_flag(name = "v8_enable_runtime_call_stats")

v8_flag(name = "v8_enable_hugepage")

v8_flag(name = "v8_enable_fast_mksnapshot")

v8_flag(name = "v8_enable_future")

# NOTE: Transitions are not recommended in library targets:
# https://groups.google.com/a/google.com/g/c-toolchain-team/c/W4nmWonD0ow/m/rLGyIL4YIQAJ
# Therefore we create multiple targets with and without ICU, instead of
# implementing the flag v8_enable_i18n_support.

v8_flag(
    name = "v8_enable_lazy_source_positions",
    default = True,
)

v8_flag(name = "v8_enable_object_print")

v8_flag(name = "v8_enable_slow_dchecks")

v8_flag(name = "v8_enable_snapshot_code_comments")

v8_flag(name = "v8_enable_snapshot_native_code_counters")

v8_flag(name = "v8_enable_trace_maps")

v8_flag(name = "v8_enable_v8_checks")

v8_flag(name = "v8_enable_verify_csa")

v8_flag(name = "v8_enable_verify_heap")

v8_flag(name = "v8_enable_verify_predictable")

v8_flag(name = "v8_enable_test_features")

v8_flag(
    name = "v8_enable_webassembly",
    default = True,
)

v8_int(
    name = "v8_typed_array_max_size_in_heap",
    default = 64,
)

# We use a string flag to create a 3 value-logic.
# If no explicit value for v8_enable_pointer_compression, we set it to 'none'.
v8_string(
    name = "v8_enable_pointer_compression",
    default = "none",
)

# Default setting for v8_enable_pointer_compression.
config_setting(
    name = "v8_enable_pointer_compression_is_none",
    flag_values = {
        ":v8_enable_pointer_compression": "none",
    },
)

# Explicity defined v8_enable_pointer_compression.
config_setting(
    name = "v8_enable_pointer_compression_is_true",
    flag_values = {
        ":v8_enable_pointer_compression": "True",
    },
)

# Default setting for v8_enable_pointer_compression when target is x64.
selects.config_setting_group(
    name = "v8_target_x64_default_pointer_compression",
    match_all = [
        ":v8_enable_pointer_compression_is_none",
        "@v8//bazel/config:v8_target_x64",
    ],
)

# Default setting for v8_enable_pointer_compression when target is arm64.
selects.config_setting_group(
    name = "v8_target_arm64_default_pointer_compression",
    match_all = [
        ":v8_enable_pointer_compression_is_none",
        "@v8//bazel/config:v8_target_arm64",
    ],
)

# v8_enable_pointer_compression is valid whenever it is explicitly defined
# or we have the default settings for targets x64 and arm64.
selects.config_setting_group(
    name = "is_v8_enable_pointer_compression",
    match_any = [
        ":v8_enable_pointer_compression_is_true",
        ":v8_target_x64_default_pointer_compression",
        ":v8_target_arm64_default_pointer_compression",
    ],
)

# Pointer cage, true by default if v8_enable_pointer_compression.
v8_flag(
    name = "v8_enable_pointer_compression_shared_cage",
    default = True,
)

# Enable shared cage if v8_enable_pointer_compression
# and v8_enable_pointer_compression_shared_cage.
selects.config_setting_group(
    name = "enable_pointer_compression_shared_cage",
    match_all = [
        ":is_v8_enable_pointer_compression",
        ":is_v8_enable_pointer_compression_shared_cage",
    ],
)

# Enable isolated cage if v8_enable_pointer_compression and
# NOT v8_enable_pointer_compression_shared_cage.
selects.config_setting_group(
    name = "enable_pointer_compression_isolated_cage",
    match_all = [
        ":is_v8_enable_pointer_compression",
        ":is_not_v8_enable_pointer_compression_shared_cage",
    ],
)

# We use a string flag to create a 3 value-logic.
# If no explicit value for v8_enable_short_builtin_calls, we set it to 'none'.
v8_string(
    name = "v8_enable_short_builtin_calls",
    default = "none",
)

# Default setting for v8_enable_pointer_compression.
config_setting(
    name = "v8_enable_short_builtin_calls_is_none",
    flag_values = {
        ":v8_enable_short_builtin_calls": "none",
    },
)

# Explicity defined v8_enable_pointer_compression.
config_setting(
    name = "v8_enable_short_builtin_calls_is_true",
    flag_values = {
        ":v8_enable_short_builtin_calls": "True",
    },
)

# Default setting for v8_enable_short_builtin_calls when target is x64.
# Disable short calls when pointer compression is not enabled.
selects.config_setting_group(
    name = "v8_target_x64_default_short_builtin_calls",
    match_all = [
        ":v8_enable_short_builtin_calls_is_none",
        "@v8//bazel/config:v8_target_x64",
        ":is_v8_enable_pointer_compression",
    ],
)

# Default setting for v8_enable_short_builtin_calls when target is arm64, but not Android.
selects.config_setting_group(
    name = "v8_target_arm64_default_short_builtin_calls",
    match_all = [
        ":v8_enable_short_builtin_calls_is_none",
        "@v8//bazel/config:v8_target_arm64",
        "@v8//bazel/config:is_not_android",
    ],
)

# v8_enable_short_builtin_calls is valid whenever it is explicitly defined
# or we have the default settings for targets x64 and arm64.
# TODO(victorgomes): v8_enable_short_builtin_calls should not be enabled when CFI is enabled.
selects.config_setting_group(
    name = "is_v8_enable_short_builtin_calls",
    match_any = [
        ":v8_enable_short_builtin_calls_is_true",
        ":v8_target_x64_default_short_builtin_calls",
        ":v8_target_arm64_default_short_builtin_calls",
    ],
)

# Enable -rdynamic.
selects.config_setting_group(
    name = "should_add_rdynamic",
    match_all = [
        "@v8//bazel/config:is_linux",
        ":is_v8_enable_backtrace",
    ],
)

v8_custom_config(name = "default")

v8_config(
    name = "define_flags",
    conditional_defines = {
        "v8_android_log_stdout": "V8_ANDROID_LOG_STDOUT",
        "v8_code_comments": "V8_CODE_COMMENTS",
        "v8_deprecation_warnings": "V8_DEPRECATION_WARNINGS",
        "v8_imminent_deprecation_warnings": "V8_IMMINENT_DEPRECATION_WARNINGS",
        "v8_enable_debug_code": "V8_ENABLE_DEBUG_CODE",
        "v8_enable_disassembler": "ENABLE_DISASSEMBLER",
        "v8_enable_handle_zapping": "ENABLE_HANDLE_ZAPPING",
        "v8_enable_hugepage": "ENABLE_HUGEPAGE",
        "v8_enable_future": "V8_ENABLE_FUTURE",
        "v8_enable_lazy_source_positions": "V8_ENABLE_LAZY_SOURCE_POSITIONS",
        "v8_enable_object_print": "OBJECT_PRINT",
        "v8_enable_slow_dchecks": "ENABLE_SLOW_DCHECKS",
        "v8_enable_runtime_call_stats": "V8_RUNTIME_CALL_STATS",
        "v8_enable_snapshot_native_code_counters": "V8_SNAPSHOT_NATIVE_CODE_COUNTERS",
        "v8_enable_trace_maps": "V8_TRACE_MAPS",
        "v8_enable_v8_checks": "V8_ENABLE_CHECKS",
        "v8_enable_verify_csa": "ENABLE_VERIFY_CSA",
        "v8_enable_verify_heap": "VERIFY_HEAP",
        "v8_enable_verify_predictable": "VERIFY_PREDICTABLE",
        "v8_enable_webassembly": "V8_ENABLE_WEBASSEMBLY",
    },
    defines = [
        "GOOGLE3",
        "CHROMIUM_ZLIB_NO_CHROMECONF",
        "ENABLE_DEBUGGER_SUPPORT",
        "V8_ADVANCED_BIGINT_ALGORITHMS",
        "V8_CONCURRENT_MARKING",
    ] + select({
        "@v8//bazel/config:is_debug": [
            "DEBUG",
            "V8_ENABLE_CHECKS",
        ],
        "//conditions:default": [],
    }) + select(
        {
            "@v8//bazel/config:v8_target_ia32": ["V8_TARGET_ARCH_IA32"],
            "@v8//bazel/config:v8_target_x64": ["V8_TARGET_ARCH_X64"],
            "@v8//bazel/config:v8_target_arm": [
                "V8_TARGET_ARCH_ARM",
                "CAN_USE_ARMV7_INSTRUCTIONS",
                "CAN_USE_VFP3_INSTRUCTIONS",
            ],
            "@v8//bazel/config:v8_target_arm64": ["V8_TARGET_ARCH_ARM64"],
            "@v8//bazel/config:v8_target_s390x": [
                "V8_TARGET_ARCH_S390",
                "V8_TARGET_ARCH_S390X",
            ],
            "@v8//bazel/config:v8_target_riscv64": [
                # NOTE: Bazel rules for riscv64 weren't tested on a real system.
                "V8_TARGET_ARCH_RISCV64",
                "CAN_USE_FPU_INSTRUCTIONS",
            ],
            "@v8//bazel/config:v8_target_ppc64le": [
                # NOTE: Bazel rules for ppc64le weren't tested on a real system.
                "V8_TARGET_ARCH_PPC64",
                "V8_TARGET_ARCH_PPC_LE",
            ],
        },
        no_match_error = "Please specify a target cpu supported by v8",
    ) + select({
        "@v8//bazel/config:is_android": [
            "V8_HAVE_TARGET_OS",
            "V8_TARGET_OS_ANDROID",
        ],
        "@v8//bazel/config:is_linux": [
            "V8_HAVE_TARGET_OS",
            "V8_TARGET_OS_LINUX",
        ],
        "@v8//bazel/config:is_macos": [
            "V8_HAVE_TARGET_OS",
            "V8_TARGET_OS_MACOS",
        ],
        "@v8//bazel/config:is_windows": [
            "V8_HAVE_TARGET_OS",
            "V8_TARGET_OS_WIN",
            "UNICODE",
            "_UNICODE",
            "_CRT_RAND_S",
            "_WIN32_WINNT=0x0602",
        ],
    }) + select({
        ":is_v8_enable_pointer_compression": [
            "V8_COMPRESS_POINTERS",
            "V8_31BIT_SMIS_ON_64BIT_ARCH",
        ],
        "//conditions:default": [],
    }) + select({
        ":enable_pointer_compression_shared_cage": [
            "V8_COMPRESS_POINTERS_IN_SHARED_CAGE",
        ],
        ":enable_pointer_compression_isolated_cage": [
            "V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE",
        ],
        "//conditions:default": [],
    }) + select({
        ":is_v8_enable_short_builtin_calls": [
            "V8_SHORT_BUILTIN_CALLS",
        ],
        "//conditions:default": [],
    }) + select({
        ":is_v8_enable_test_features": [
            "V8_ENABLE_ALLOCATION_TIMEOUT",
            "V8_ENABLE_FORCE_SLOW_PATH",
            "V8_ENABLE_DOUBLE_CONST_STORE_CHECK",
        ],
        "//conditions:default": [],
    }),
    deps = [":default"],
)

# =================================================
# File group rules
# =================================================

filegroup(
    name = "public_header_files",
    srcs = glob(["include/**/*.h"]),
)

filegroup(
    name = "public_wasm_c_api_header_files",
    srcs = [
        "third_party/wasm-api/wasm.h",
        "third_party/wasm-api/wasm.hh",
    ],
)

filegroup(
    name = "v8_config_headers_files",
    srcs = [
        "include/v8-platform.h",
        "include/v8config.h",
    ],
)

filegroup(
    name = "v8_version_files",
    srcs = [
        "include/v8-value-serializer-version.h",
        "include/v8-version.h",
        "include/v8-version-string.h",
    ],
)

filegroup(
    name = "cppgc_headers_files",
    srcs = [
        "include/cppgc/allocation.h",
        "include/cppgc/common.h",
        "include/cppgc/cross-thread-persistent.h",
        "include/cppgc/custom-space.h",
        "include/cppgc/default-platform.h",
        "include/cppgc/ephemeron-pair.h",
        "include/cppgc/explicit-management.h",
        "include/cppgc/garbage-collected.h",
        "include/cppgc/heap.h",
        "include/cppgc/heap-consistency.h",
        "include/cppgc/heap-state.h",
        "include/cppgc/heap-statistics.h",
        "include/cppgc/internal/api-constants.h",
        "include/cppgc/internal/atomic-entry-flag.h",
        "include/cppgc/internal/caged-heap-local-data.h",
        "include/cppgc/internal/compiler-specific.h",
        "include/cppgc/internal/finalizer-trait.h",
        "include/cppgc/internal/gc-info.h",
        "include/cppgc/internal/logging.h",
        "include/cppgc/internal/name-trait.h",
        "include/cppgc/internal/persistent-node.h",
        "include/cppgc/internal/pointer-policies.h",
        "include/cppgc/internal/write-barrier.h",
        "include/cppgc/liveness-broker.h",
        "include/cppgc/macros.h",
        "include/cppgc/member.h",
        "include/cppgc/name-provider.h",
        "include/cppgc/object-size-trait.h",
        "include/cppgc/persistent.h",
        "include/cppgc/platform.h",
        "include/cppgc/prefinalizer.h",
        "include/cppgc/process-heap-statistics.h",
        "include/cppgc/sentinel-pointer.h",
        "include/cppgc/source-location.h",
        "include/cppgc/trace-trait.h",
        "include/cppgc/type-traits.h",
        "include/cppgc/visitor.h",
    ],
)

filegroup(
    name = "v8_headers_files",
    srcs = [
        "include/v8.h",
        "include/v8-array-buffer.h",
        "include/v8-callbacks.h",
        "include/v8-container.h",
        "include/v8-context.h",
        "include/v8-cppgc.h",
        "include/v8-data.h",
        "include/v8-date.h",
        "include/v8-debug.h",
        "include/v8-embedder-heap.h",
        "include/v8-embedder-state-scope.h",
        "include/v8-exception.h",
        "include/v8-extension.h",
        "include/v8-external.h",
        "include/v8-fast-api-calls.h",
        "include/v8-forward.h",
        "include/v8-function.h",
        "include/v8-function-callback.h",
        "include/v8-initialization.h",
        "include/v8-internal.h",
        "include/v8-isolate.h",
        "include/v8-json.h",
        "include/v8-local-handle.h",
        "include/v8-locker.h",
        "include/v8-maybe.h",
        "include/v8-memory-span.h",
        "include/v8-message.h",
        "include/v8-microtask.h",
        "include/v8-microtask-queue.h",
        "include/v8-object.h",
        "include/v8-persistent-handle.h",
        "include/v8-primitive.h",
        "include/v8-primitive-object.h",
        "include/v8-profiler.h",
        "include/v8-promise.h",
        "include/v8-proxy.h",
        "include/v8-regexp.h",
        "include/v8-script.h",
        "include/v8-snapshot.h",
        "include/v8-statistics.h",
        "include/v8-template.h",
        "include/v8-traced-handle.h",
        "include/v8-typed-array.h",
        "include/v8-unwinder.h",
        "include/v8-util.h",
        "include/v8-value.h",
        "include/v8-value-serializer.h",
        "include/v8-wasm.h",
        "include/v8-weak-callback-info.h",
        ":cppgc_headers_files",
        ":v8_version_files",
    ],
)

filegroup(
    name = "v8_flags",
    srcs = [
        "src/flags/flag-definitions.h",
        "src/flags/flags.h",
    ] + select({
        "is_v8_enable_webassembly": ["src/wasm/wasm-feature-flags.h"],
        "//conditions:default": [],
    }),
)

filegroup(
    name = "v8_shared_internal_headers",
    srcs = [
        "src/common/globals.h",
        "testing/gtest/include/gtest/gtest_prod.h",
    ] + select({
        "is_v8_enable_webassembly": [
            "src/wasm/wasm-constants.h",
            "src/wasm/wasm-limits.h",
        ],
        "//conditions:default": [],
    }),
)

filegroup(
    name = "v8_libbase_files",
    srcs = [
        ":v8_flags",
        ":v8_config_headers_files",
        ":v8_headers_files",
        "src/base/vlq.h",
        "src/base/address-region.h",
        "src/base/atomic-utils.h",
        "src/base/atomicops.h",
        "src/base/atomicops_internals_atomicword_compat.h",
        "src/base/base-export.h",
        "src/base/bit-field.h",
        "src/base/bits-iterator.h",
        "src/base/bits.cc",
        "src/base/bits.h",
        "src/base/bounded-page-allocator.cc",
        "src/base/bounded-page-allocator.h",
        "src/base/bounds.h",
        "src/base/build_config.h",
        "src/base/compiler-specific.h",
        "src/base/cpu.cc",
        "src/base/cpu.h",
        "src/base/debug/stack_trace.cc",
        "src/base/debug/stack_trace.h",
        "src/base/division-by-constant.cc",
        "src/base/division-by-constant.h",
        "src/base/emulated-virtual-address-subspace.cc",
        "src/base/emulated-virtual-address-subspace.h",
        "src/base/enum-set.h",
        "src/base/export-template.h",
        "src/base/file-utils.cc",
        "src/base/file-utils.h",
        "src/base/flags.h",
        "src/base/free_deleter.h",
        "src/base/functional.cc",
        "src/base/functional.h",
        "src/base/hashmap-entry.h",
        "src/base/hashmap.h",
        "src/base/ieee754.cc",
        "src/base/ieee754.h",
        "src/base/immediate-crash.h",
        "src/base/iterator.h",
        "src/base/lazy-instance.h",
        "src/base/logging.cc",
        "src/base/logging.h",
        "src/base/macros.h",
        "src/base/memory.h",
        "src/base/numbers/bignum-dtoa.cc",
        "src/base/numbers/bignum-dtoa.h",
        "src/base/numbers/bignum.cc",
        "src/base/numbers/bignum.h",
        "src/base/numbers/cached-powers.cc",
        "src/base/numbers/cached-powers.h",
        "src/base/numbers/diy-fp.cc",
        "src/base/numbers/diy-fp.h",
        "src/base/numbers/double.h",
        "src/base/numbers/dtoa.cc",
        "src/base/numbers/dtoa.h",
        "src/base/numbers/fast-dtoa.cc",
        "src/base/numbers/fast-dtoa.h",
        "src/base/numbers/fixed-dtoa.cc",
        "src/base/numbers/fixed-dtoa.h",
        "src/base/numbers/strtod.cc",
        "src/base/numbers/strtod.h",
        "src/base/once.cc",
        "src/base/once.h",
        "src/base/optional.h",
        "src/base/overflowing-math.h",
        "src/base/page-allocator.cc",
        "src/base/page-allocator.h",
        "src/base/platform/condition-variable.cc",
        "src/base/platform/condition-variable.h",
        "src/base/platform/elapsed-timer.h",
        "src/base/platform/mutex.cc",
        "src/base/platform/mutex.h",
        "src/base/platform/platform.h",
        "src/base/platform/semaphore.cc",
        "src/base/platform/semaphore.h",
        "src/base/platform/time.cc",
        "src/base/platform/time.h",
        "src/base/pointer-with-payload.h",
        "src/base/platform/wrappers.h",
        "src/base/region-allocator.cc",
        "src/base/region-allocator.h",
        "src/base/ring-buffer.h",
        "src/base/safe_conversions.h",
        "src/base/safe_conversions_arm_impl.h",
        "src/base/safe_conversions_impl.h",
        "src/base/small-vector.h",
        "src/base/strings.cc",
        "src/base/strings.h",
        "src/base/sys-info.cc",
        "src/base/sys-info.h",
        "src/base/template-utils.h",
        "src/base/timezone-cache.h",
        "src/base/threaded-list.h",
        "src/base/utils/random-number-generator.cc",
        "src/base/utils/random-number-generator.h",
        "src/base/vector.h",
        "src/base/virtual-address-space-page-allocator.cc",
        "src/base/virtual-address-space-page-allocator.h",
        "src/base/virtual-address-space.cc",
        "src/base/virtual-address-space.h",
        "src/base/v8-fallthrough.h",
        "src/base/vlq-base64.cc",
        "src/base/vlq-base64.h",
        "src/base/platform/yield-processor.h",
    ] + select({
        "@v8//bazel/config:is_posix": [
            "src/base/platform/platform-posix.cc",
            "src/base/platform/platform-posix.h",
            "src/base/platform/platform-posix-time.cc",
            "src/base/platform/platform-posix-time.h",
        ],
        "//conditions:default": [],
    }) + select({
        "@v8//bazel/config:is_linux": [
            "src/base/debug/stack_trace_posix.cc",
            "src/base/platform/platform-linux.cc",
        ],
        "@v8//bazel/config:is_android": [
            "src/base/debug/stack_trace_android.cc",
            "src/base/platform/platform-linux.cc",
        ],
        "@v8//bazel/config:is_macos": [
            "src/base/debug/stack_trace_posix.cc",
            "src/base/platform/platform-darwin.cc",
            "src/base/platform/platform-macos.cc",
        ],
        "@v8//bazel/config:is_windows": [
            "src/base/win32-headers.h",
            "src/base/debug/stack_trace_win.cc",
            "src/base/platform/platform-win32.cc",
        ],
    }),
    visibility = ["//visibility:public"],
)

filegroup(
    name = "v8_libplatform_files",
    srcs = [
        "include/libplatform/libplatform.h",
        "include/libplatform/libplatform-export.h",
        "include/libplatform/v8-tracing.h",
        "src/libplatform/default-foreground-task-runner.cc",
        "src/libplatform/default-foreground-task-runner.h",
        "src/libplatform/default-job.cc",
        "src/libplatform/default-job.h",
        "src/libplatform/default-platform.cc",
        "src/libplatform/default-platform.h",
        "src/libplatform/default-worker-threads-task-runner.cc",
        "src/libplatform/default-worker-threads-task-runner.h",
        "src/libplatform/delayed-task-queue.cc",
        "src/libplatform/delayed-task-queue.h",
        "src/libplatform/task-queue.cc",
        "src/libplatform/task-queue.h",
        "src/libplatform/tracing/recorder.h",
        "src/libplatform/tracing/trace-buffer.cc",
        "src/libplatform/tracing/trace-buffer.h",
        "src/libplatform/tracing/trace-config.cc",
        "src/libplatform/tracing/trace-object.cc",
        "src/libplatform/tracing/trace-writer.cc",
        "src/libplatform/tracing/trace-writer.h",
        "src/libplatform/tracing/tracing-controller.cc",
        "src/libplatform/worker-thread.cc",
        "src/libplatform/worker-thread.h",
    ],
)

filegroup(
    name = "v8_libsampler_files",
    srcs = [
        "src/libsampler/sampler.cc",
        "src/libsampler/sampler.h",
    ],
)

filegroup(
    name = "torque_runtime_support_files",
    srcs = ["src/torque/runtime-support.h"],
)

filegroup(
    name = "noicu/torque_files",
    srcs = [
        "src/builtins/aggregate-error.tq",
        "src/builtins/array-at.tq",
        "src/builtins/array-concat.tq",
        "src/builtins/array-copywithin.tq",
        "src/builtins/array-every.tq",
        "src/builtins/array-filter.tq",
        "src/builtins/array-find.tq",
        "src/builtins/array-findindex.tq",
        "src/builtins/array-findlast.tq",
        "src/builtins/array-findlastindex.tq",
        "src/builtins/array-foreach.tq",
        "src/builtins/array-from.tq",
        "src/builtins/array-isarray.tq",
        "src/builtins/array-join.tq",
        "src/builtins/array-lastindexof.tq",
        "src/builtins/array-map.tq",
        "src/builtins/array-of.tq",
        "src/builtins/array-reduce-right.tq",
        "src/builtins/array-reduce.tq",
        "src/builtins/array-reverse.tq",
        "src/builtins/array-shift.tq",
        "src/builtins/array-slice.tq",
        "src/builtins/array-some.tq",
        "src/builtins/array-splice.tq",
        "src/builtins/array-unshift.tq",
        "src/builtins/array.tq",
        "src/builtins/arraybuffer.tq",
        "src/builtins/base.tq",
        "src/builtins/boolean.tq",
        "src/builtins/builtins-bigint.tq",
        "src/builtins/builtins-string.tq",
        "src/builtins/cast.tq",
        "src/builtins/collections.tq",
        "src/builtins/constructor.tq",
        "src/builtins/conversion.tq",
        "src/builtins/convert.tq",
        "src/builtins/console.tq",
        "src/builtins/data-view.tq",
        "src/builtins/finalization-registry.tq",
        "src/builtins/frames.tq",
        "src/builtins/frame-arguments.tq",
        "src/builtins/function.tq",
        "src/builtins/growable-fixed-array.tq",
        "src/builtins/ic-callable.tq",
        "src/builtins/ic.tq",
        "src/builtins/internal-coverage.tq",
        "src/builtins/internal.tq",
        "src/builtins/iterator.tq",
        "src/builtins/math.tq",
        "src/builtins/number.tq",
        "src/builtins/object-fromentries.tq",
        "src/builtins/object.tq",
        "src/builtins/promise-abstract-operations.tq",
        "src/builtins/promise-all.tq",
        "src/builtins/promise-all-element-closure.tq",
        "src/builtins/promise-any.tq",
        "src/builtins/promise-constructor.tq",
        "src/builtins/promise-finally.tq",
        "src/builtins/promise-misc.tq",
        "src/builtins/promise-race.tq",
        "src/builtins/promise-reaction-job.tq",
        "src/builtins/promise-resolve.tq",
        "src/builtins/promise-then.tq",
        "src/builtins/promise-jobs.tq",
        "src/builtins/proxy-constructor.tq",
        "src/builtins/proxy-delete-property.tq",
        "src/builtins/proxy-get-property.tq",
        "src/builtins/proxy-get-prototype-of.tq",
        "src/builtins/proxy-has-property.tq",
        "src/builtins/proxy-is-extensible.tq",
        "src/builtins/proxy-prevent-extensions.tq",
        "src/builtins/proxy-revocable.tq",
        "src/builtins/proxy-revoke.tq",
        "src/builtins/proxy-set-property.tq",
        "src/builtins/proxy-set-prototype-of.tq",
        "src/builtins/proxy.tq",
        "src/builtins/reflect.tq",
        "src/builtins/regexp-exec.tq",
        "src/builtins/regexp-match-all.tq",
        "src/builtins/regexp-match.tq",
        "src/builtins/regexp-replace.tq",
        "src/builtins/regexp-search.tq",
        "src/builtins/regexp-source.tq",
        "src/builtins/regexp-split.tq",
        "src/builtins/regexp-test.tq",
        "src/builtins/regexp.tq",
        "src/builtins/string-at.tq",
        "src/builtins/string-endswith.tq",
        "src/builtins/string-html.tq",
        "src/builtins/string-includes.tq",
        "src/builtins/string-indexof.tq",
        "src/builtins/string-iterator.tq",
        "src/builtins/string-match-search.tq",
        "src/builtins/string-pad.tq",
        "src/builtins/string-repeat.tq",
        "src/builtins/string-replaceall.tq",
        "src/builtins/string-slice.tq",
        "src/builtins/string-startswith.tq",
        "src/builtins/string-substr.tq",
        "src/builtins/string-substring.tq",
        "src/builtins/string-trim.tq",
        "src/builtins/symbol.tq",
        "src/builtins/torque-internal.tq",
        "src/builtins/typed-array-at.tq",
        "src/builtins/typed-array-createtypedarray.tq",
        "src/builtins/typed-array-every.tq",
        "src/builtins/typed-array-entries.tq",
        "src/builtins/typed-array-filter.tq",
        "src/builtins/typed-array-find.tq",
        "src/builtins/typed-array-findindex.tq",
        "src/builtins/typed-array-findlast.tq",
        "src/builtins/typed-array-findlastindex.tq",
        "src/builtins/typed-array-foreach.tq",
        "src/builtins/typed-array-from.tq",
        "src/builtins/typed-array-keys.tq",
        "src/builtins/typed-array-of.tq",
        "src/builtins/typed-array-reduce.tq",
        "src/builtins/typed-array-reduceright.tq",
        "src/builtins/typed-array-set.tq",
        "src/builtins/typed-array-slice.tq",
        "src/builtins/typed-array-some.tq",
        "src/builtins/typed-array-sort.tq",
        "src/builtins/typed-array-subarray.tq",
        "src/builtins/typed-array-values.tq",
        "src/builtins/typed-array.tq",
        "src/builtins/weak-ref.tq",
        "src/ic/handler-configuration.tq",
        "src/objects/allocation-site.tq",
        "src/objects/api-callbacks.tq",
        "src/objects/arguments.tq",
        "src/objects/bigint.tq",
        "src/objects/call-site-info.tq",
        "src/objects/cell.tq",
        "src/objects/code.tq",
        "src/objects/contexts.tq",
        "src/objects/data-handler.tq",
        "src/objects/debug-objects.tq",
        "src/objects/descriptor-array.tq",
        "src/objects/embedder-data-array.tq",
        "src/objects/feedback-cell.tq",
        "src/objects/feedback-vector.tq",
        "src/objects/fixed-array.tq",
        "src/objects/foreign.tq",
        "src/objects/free-space.tq",
        "src/objects/heap-number.tq",
        "src/objects/heap-object.tq",
        "src/objects/js-array-buffer.tq",
        "src/objects/js-array.tq",
        "src/objects/js-collection-iterator.tq",
        "src/objects/js-collection.tq",
        "src/objects/js-function.tq",
        "src/objects/js-generator.tq",
        "src/objects/js-objects.tq",
        "src/objects/js-promise.tq",
        "src/objects/js-proxy.tq",
        "src/objects/js-regexp-string-iterator.tq",
        "src/objects/js-regexp.tq",
        "src/objects/js-shadow-realms.tq",
        "src/objects/js-struct.tq",
        "src/objects/js-temporal-objects.tq",
        "src/objects/js-weak-refs.tq",
        "src/objects/literal-objects.tq",
        "src/objects/map.tq",
        "src/objects/megadom-handler.tq",
        "src/objects/microtask.tq",
        "src/objects/module.tq",
        "src/objects/name.tq",
        "src/objects/oddball.tq",
        "src/objects/ordered-hash-table.tq",
        "src/objects/primitive-heap-object.tq",
        "src/objects/promise.tq",
        "src/objects/property-array.tq",
        "src/objects/property-cell.tq",
        "src/objects/property-descriptor-object.tq",
        "src/objects/prototype-info.tq",
        "src/objects/regexp-match-info.tq",
        "src/objects/scope-info.tq",
        "src/objects/script.tq",
        "src/objects/shared-function-info.tq",
        "src/objects/source-text-module.tq",
        "src/objects/string.tq",
        "src/objects/struct.tq",
        "src/objects/swiss-hash-table-helpers.tq",
        "src/objects/swiss-name-dictionary.tq",
        "src/objects/synthetic-module.tq",
        "src/objects/template-objects.tq",
        "src/objects/templates.tq",
        "src/objects/torque-defined-classes.tq",
        "src/objects/turbofan-types.tq",
        "test/torque/test-torque.tq",
        "third_party/v8/builtins/array-sort.tq",
    ] + select({
        ":is_v8_enable_webassembly": [
            "src/builtins/wasm.tq",
            "src/debug/debug-wasm-objects.tq",
            "src/wasm/wasm-objects.tq",
        ],
        "//conditions:default": [],
    }),
)

filegroup(
    name = "icu/torque_files",
    srcs = [
        "src/objects/intl-objects.tq",
        "src/objects/js-break-iterator.tq",
        "src/objects/js-collator.tq",
        "src/objects/js-date-time-format.tq",
        "src/objects/js-display-names.tq",
        "src/objects/js-list-format.tq",
        "src/objects/js-locale.tq",
        "src/objects/js-number-format.tq",
        "src/objects/js-plural-rules.tq",
        "src/objects/js-relative-time-format.tq",
        "src/objects/js-segment-iterator.tq",
        "src/objects/js-segmenter.tq",
        "src/objects/js-segments.tq",
        ":noicu/torque_files",
    ],
)

filegroup(
    name = "torque_base_files",
    srcs = [
        "src/numbers/integer-literal-inl.h",
        "src/numbers/integer-literal.h",
        "src/torque/ast.h",
        "src/torque/cc-generator.cc",
        "src/torque/cc-generator.h",
        "src/torque/cfg.cc",
        "src/torque/cfg.h",
        "src/torque/class-debug-reader-generator.cc",
        "src/torque/constants.h",
        "src/torque/contextual.h",
        "src/torque/cpp-builder.cc",
        "src/torque/cpp-builder.h",
        "src/torque/csa-generator.cc",
        "src/torque/csa-generator.h",
        "src/torque/declarable.cc",
        "src/torque/declarable.h",
        "src/torque/declaration-visitor.cc",
        "src/torque/declaration-visitor.h",
        "src/torque/declarations.cc",
        "src/torque/declarations.h",
        "src/torque/earley-parser.cc",
        "src/torque/earley-parser.h",
        "src/torque/global-context.cc",
        "src/torque/global-context.h",
        "src/torque/implementation-visitor.cc",
        "src/torque/implementation-visitor.h",
        "src/torque/instance-type-generator.cc",
        "src/torque/instructions.cc",
        "src/torque/instructions.h",
        "src/torque/kythe-data.cc",
        "src/torque/kythe-data.h",
        "src/torque/parameter-difference.h",
        "src/torque/server-data.cc",
        "src/torque/server-data.h",
        "src/torque/source-positions.cc",
        "src/torque/source-positions.h",
        "src/torque/torque-code-generator.cc",
        "src/torque/torque-code-generator.h",
        "src/torque/torque-compiler.cc",
        "src/torque/torque-compiler.h",
        "src/torque/torque-parser.cc",
        "src/torque/torque-parser.h",
        "src/torque/type-inference.cc",
        "src/torque/type-inference.h",
        "src/torque/type-oracle.cc",
        "src/torque/type-oracle.h",
        "src/torque/type-visitor.cc",
        "src/torque/type-visitor.h",
        "src/torque/types.cc",
        "src/torque/types.h",
        "src/torque/utils.cc",
        "src/torque/utils.h",
    ],
)

filegroup(
    name = "v8_base_without_compiler_files",
    srcs = [
        ":cppgc_base_files",
        ":v8_heap_base_files",
        ":v8_bigint",
        ":generated_bytecode_builtins_list",
        "include/cppgc/common.h",
        "include/v8-inspector-protocol.h",
        "include/v8-inspector.h",
        "include/v8-metrics.h",
        "include/v8-unwinder-state.h",
        "include/v8-wasm-trap-handler-posix.h",
        "src/api/api-arguments-inl.h",
        "src/api/api-arguments.cc",
        "src/api/api-arguments.h",
        "src/api/api-inl.h",
        "src/api/api-macros.h",
        "src/api/api-macros-undef.h",
        "src/api/api-natives.cc",
        "src/api/api-natives.h",
        "src/api/api.cc",
        "src/api/api.h",
        "src/ast/ast-function-literal-id-reindexer.cc",
        "src/ast/ast-function-literal-id-reindexer.h",
        "src/ast/ast-source-ranges.h",
        "src/ast/ast-traversal-visitor.h",
        "src/ast/ast-value-factory.cc",
        "src/ast/ast-value-factory.h",
        "src/ast/ast.cc",
        "src/ast/ast.h",
        "src/ast/modules.cc",
        "src/ast/modules.h",
        "src/ast/prettyprinter.cc",
        "src/ast/prettyprinter.h",
        "src/ast/scopes.cc",
        "src/ast/scopes.h",
        "src/ast/source-range-ast-visitor.cc",
        "src/ast/source-range-ast-visitor.h",
        "src/ast/variables.cc",
        "src/ast/variables.h",
        "src/baseline/baseline-assembler-inl.h",
        "src/baseline/baseline-assembler.h",
        "src/baseline/baseline-compiler.cc",
        "src/baseline/baseline-compiler.h",
        "src/baseline/baseline.cc",
        "src/baseline/baseline.h",
        "src/baseline/baseline-batch-compiler.h",
        "src/baseline/baseline-batch-compiler.cc",
        "src/baseline/bytecode-offset-iterator.h",
        "src/baseline/bytecode-offset-iterator.cc",
        "src/builtins/accessors.cc",
        "src/builtins/accessors.h",
        "src/builtins/builtins-api.cc",
        "src/builtins/builtins-array.cc",
        "src/builtins/builtins-arraybuffer.cc",
        "src/builtins/builtins-async-module.cc",
        "src/builtins/builtins-bigint.cc",
        "src/builtins/builtins-callsite.cc",
        "src/builtins/builtins-collections.cc",
        "src/builtins/builtins-console.cc",
        "src/builtins/builtins-constructor.h",
        "src/builtins/builtins-dataview.cc",
        "src/builtins/builtins-date.cc",
        "src/builtins/builtins-definitions.h",
        "src/builtins/builtins-descriptors.h",
        "src/builtins/builtins-error.cc",
        "src/builtins/builtins-function.cc",
        "src/builtins/builtins-global.cc",
        "src/builtins/builtins-internal.cc",
        "src/builtins/builtins-json.cc",
        "src/builtins/builtins-number.cc",
        "src/builtins/builtins-object.cc",
        "src/builtins/builtins-promise.h",
        "src/builtins/builtins-reflect.cc",
        "src/builtins/builtins-regexp.cc",
        "src/builtins/builtins-shadow-realms.cc",
        "src/builtins/builtins-sharedarraybuffer.cc",
        "src/builtins/builtins-string.cc",
        "src/builtins/builtins-struct.cc",
        "src/builtins/builtins-symbol.cc",
        "src/builtins/builtins-temporal.cc",
        "src/builtins/builtins-trace.cc",
        "src/builtins/builtins-typed-array.cc",
        "src/builtins/builtins-utils-inl.h",
        "src/builtins/builtins-utils.h",
        "src/builtins/builtins-weak-refs.cc",
        "src/builtins/builtins.cc",
        "src/builtins/builtins.h",
        "src/builtins/constants-table-builder.cc",
        "src/builtins/constants-table-builder.h",
        "src/builtins/profile-data-reader.h",
        "src/codegen/aligned-slot-allocator.h",
        "src/codegen/aligned-slot-allocator.cc",
        "src/codegen/assembler-arch.h",
        "src/codegen/assembler-inl.h",
        "src/codegen/assembler.cc",
        "src/codegen/assembler.h",
        "src/codegen/atomic-memory-order.h",
        "src/codegen/bailout-reason.cc",
        "src/codegen/bailout-reason.h",
        "src/codegen/callable.h",
        "src/codegen/code-comments.cc",
        "src/codegen/code-comments.h",
        "src/codegen/code-desc.cc",
        "src/codegen/code-desc.h",
        "src/codegen/code-factory.cc",
        "src/codegen/code-factory.h",
        "src/codegen/code-reference.cc",
        "src/codegen/code-reference.h",
        "src/codegen/compilation-cache.cc",
        "src/codegen/compilation-cache.h",
        "src/codegen/compiler.cc",
        "src/codegen/compiler.h",
        "src/codegen/constant-pool.cc",
        "src/codegen/constant-pool.h",
        "src/codegen/constants-arch.h",
        "src/codegen/cpu-features.h",
        "src/codegen/external-reference-encoder.cc",
        "src/codegen/external-reference-encoder.h",
        "src/codegen/external-reference-table.cc",
        "src/codegen/external-reference-table.h",
        "src/codegen/external-reference.cc",
        "src/codegen/external-reference.h",
        "src/codegen/flush-instruction-cache.cc",
        "src/codegen/flush-instruction-cache.h",
        "src/codegen/handler-table.cc",
        "src/codegen/handler-table.h",
        "src/codegen/interface-descriptors.cc",
        "src/codegen/interface-descriptors-inl.h",
        "src/codegen/interface-descriptors.h",
        "src/codegen/label.h",
        "src/codegen/machine-type.cc",
        "src/codegen/machine-type.h",
        "src/codegen/macro-assembler-inl.h",
        "src/codegen/macro-assembler.h",
        "src/codegen/optimized-compilation-info.cc",
        "src/codegen/optimized-compilation-info.h",
        "src/codegen/pending-optimization-table.cc",
        "src/codegen/pending-optimization-table.h",
        "src/codegen/register-arch.h",
        "src/codegen/register-base.h",
        "src/codegen/register-configuration.cc",
        "src/codegen/register-configuration.h",
        "src/codegen/register.h",
        "src/codegen/reglist-base.h",
        "src/codegen/reglist.h",
        "src/codegen/reloc-info.cc",
        "src/codegen/reloc-info.h",
        "src/codegen/safepoint-table.cc",
        "src/codegen/safepoint-table.h",
        "src/codegen/script-details.h",
        "src/codegen/signature.h",
        "src/codegen/source-position-table.cc",
        "src/codegen/source-position-table.h",
        "src/codegen/source-position.cc",
        "src/codegen/source-position.h",
        "src/codegen/string-constants.cc",
        "src/codegen/string-constants.h",
        "src/codegen/tick-counter.cc",
        "src/codegen/tick-counter.h",
        "src/codegen/tnode.cc",
        "src/codegen/tnode.h",
        "src/codegen/turbo-assembler.cc",
        "src/codegen/turbo-assembler.h",
        "src/codegen/unoptimized-compilation-info.cc",
        "src/codegen/unoptimized-compilation-info.h",
        "src/common/assert-scope.cc",
        "src/common/assert-scope.h",
        "src/common/allow-deprecated.h",
        "src/common/checks.h",
        "src/common/high-allocation-throughput-scope.h",
        "src/common/message-template.h",
        "src/common/operation.h",
        "src/common/ptr-compr-inl.h",
        "src/common/ptr-compr.h",
        "src/compiler-dispatcher/lazy-compile-dispatcher.cc",
        "src/compiler-dispatcher/lazy-compile-dispatcher.h",
        "src/compiler-dispatcher/optimizing-compile-dispatcher.cc",
        "src/compiler-dispatcher/optimizing-compile-dispatcher.h",
        "src/date/date.cc",
        "src/date/date.h",
        "src/date/dateparser-inl.h",
        "src/date/dateparser.cc",
        "src/date/dateparser.h",
        "src/debug/debug-coverage.cc",
        "src/debug/debug-coverage.h",
        "src/debug/debug-evaluate.cc",
        "src/debug/debug-evaluate.h",
        "src/debug/debug-frames.cc",
        "src/debug/debug-frames.h",
        "src/debug/debug-interface.cc",
        "src/debug/debug-interface.h",
        "src/debug/debug-property-iterator.cc",
        "src/debug/debug-property-iterator.h",
        "src/debug/debug-scope-iterator.cc",
        "src/debug/debug-scope-iterator.h",
        "src/debug/debug-scopes.cc",
        "src/debug/debug-scopes.h",
        "src/debug/debug-stack-trace-iterator.cc",
        "src/debug/debug-stack-trace-iterator.h",
        "src/debug/debug-type-profile.cc",
        "src/debug/debug-type-profile.h",
        "src/debug/debug.cc",
        "src/debug/debug.h",
        "src/debug/interface-types.h",
        "src/debug/liveedit.cc",
        "src/debug/liveedit.h",
        "src/deoptimizer/deoptimize-reason.cc",
        "src/deoptimizer/deoptimize-reason.h",
        "src/deoptimizer/deoptimized-frame-info.cc",
        "src/deoptimizer/deoptimized-frame-info.h",
        "src/deoptimizer/deoptimizer.cc",
        "src/deoptimizer/deoptimizer.h",
        "src/deoptimizer/frame-description.h",
        "src/deoptimizer/materialized-object-store.cc",
        "src/deoptimizer/materialized-object-store.h",
        "src/deoptimizer/translated-state.cc",
        "src/deoptimizer/translated-state.h",
        "src/deoptimizer/translation-array.cc",
        "src/deoptimizer/translation-array.h",
        "src/deoptimizer/translation-opcode.h",
        "src/diagnostics/basic-block-profiler.cc",
        "src/diagnostics/basic-block-profiler.h",
        "src/diagnostics/code-tracer.h",
        "src/diagnostics/compilation-statistics.cc",
        "src/diagnostics/compilation-statistics.h",
        "src/diagnostics/disasm.h",
        "src/diagnostics/disassembler.cc",
        "src/diagnostics/disassembler.h",
        "src/diagnostics/eh-frame.cc",
        "src/diagnostics/eh-frame.h",
        "src/diagnostics/gdb-jit.cc",
        "src/diagnostics/gdb-jit.h",
        "src/diagnostics/objects-debug.cc",
        "src/diagnostics/objects-printer.cc",
        "src/diagnostics/perf-jit.cc",
        "src/diagnostics/perf-jit.h",
        "src/diagnostics/unwinder.cc",
        "src/diagnostics/unwinder.h",
        "src/execution/arguments-inl.h",
        "src/execution/arguments.cc",
        "src/execution/arguments.h",
        "src/execution/clobber-registers.cc",
        "src/execution/clobber-registers.h",
        "src/execution/encoded-c-signature.cc",
        "src/execution/encoded-c-signature.h",
        "src/execution/embedder-state.h",
        "src/execution/embedder-state.cc",
        "src/execution/execution.cc",
        "src/execution/execution.h",
        "src/execution/frame-constants.h",
        "src/execution/frames-inl.h",
        "src/execution/frames.cc",
        "src/execution/frames.h",
        "src/execution/futex-emulation.cc",
        "src/execution/futex-emulation.h",
        "src/execution/interrupts-scope.cc",
        "src/execution/interrupts-scope.h",
        "src/execution/isolate-data.h",
        "src/execution/isolate-inl.h",
        "src/execution/isolate-utils.h",
        "src/execution/isolate-utils-inl.h",
        "src/snapshot/embedded/platform-embedded-file-writer-base.h",
        "src/snapshot/embedded/embedded-file-writer.h",
        "src/execution/isolate.cc",
        "src/execution/isolate.h",
        "src/execution/local-isolate-inl.h",
        "src/execution/local-isolate.cc",
        "src/execution/local-isolate.h",
        "src/execution/messages.cc",
        "src/execution/messages.h",
        "src/execution/microtask-queue.cc",
        "src/execution/microtask-queue.h",
        "src/execution/pointer-authentication.h",
        "src/execution/protectors-inl.h",
        "src/execution/protectors.cc",
        "src/execution/protectors.h",
        "src/execution/shared-mutex-guard-if-off-thread.h",
        "src/execution/simulator-base.cc",
        "src/execution/simulator-base.h",
        "src/execution/simulator.h",
        "src/execution/stack-guard.cc",
        "src/execution/stack-guard.h",
        "src/execution/thread-id.cc",
        "src/execution/thread-id.h",
        "src/execution/thread-local-top.cc",
        "src/execution/thread-local-top.h",
        "src/execution/tiering-manager.cc",
        "src/execution/tiering-manager.h",
        "src/execution/v8threads.cc",
        "src/execution/v8threads.h",
        "src/execution/vm-state-inl.h",
        "src/execution/vm-state.h",
        "src/extensions/cputracemark-extension.cc",
        "src/extensions/cputracemark-extension.h",
        "src/extensions/externalize-string-extension.cc",
        "src/extensions/externalize-string-extension.h",
        "src/extensions/gc-extension.cc",
        "src/extensions/gc-extension.h",
        "src/extensions/ignition-statistics-extension.cc",
        "src/extensions/ignition-statistics-extension.h",
        "src/extensions/statistics-extension.cc",
        "src/extensions/statistics-extension.h",
        "src/extensions/trigger-failure-extension.cc",
        "src/extensions/trigger-failure-extension.h",
        "src/flags/flag-definitions.h",
        "src/flags/flags.cc",
        "src/flags/flags.h",
        "src/handles/global-handles-inl.h",
        "src/handles/global-handles.cc",
        "src/handles/global-handles.h",
        "src/handles/handles-inl.h",
        "src/handles/handles.cc",
        "src/handles/handles.h",
        "src/handles/local-handles-inl.h",
        "src/handles/local-handles.cc",
        "src/handles/local-handles.h",
        "src/handles/maybe-handles-inl.h",
        "src/handles/maybe-handles.h",
        "src/handles/persistent-handles.cc",
        "src/handles/persistent-handles.h",
        "src/heap/base/active-system-pages.cc",
        "src/heap/base/active-system-pages.h",
        "src/heap/allocation-observer.cc",
        "src/heap/allocation-observer.h",
        "src/heap/allocation-result.h",
        "src/heap/allocation-stats.h",
        "src/heap/array-buffer-sweeper.cc",
        "src/heap/array-buffer-sweeper.h",
        "src/heap/base-space.cc",
        "src/heap/base-space.h",
        "src/heap/basic-memory-chunk.cc",
        "src/heap/basic-memory-chunk.h",
        "src/heap/code-object-registry.cc",
        "src/heap/code-object-registry.h",
        "src/heap/code-range.h",
        "src/heap/code-range.cc",
        "src/heap/code-stats.cc",
        "src/heap/code-stats.h",
        "src/heap/collection-barrier.cc",
        "src/heap/collection-barrier.h",
        "src/heap/combined-heap.cc",
        "src/heap/combined-heap.h",
        "src/heap/concurrent-allocator-inl.h",
        "src/heap/concurrent-allocator.cc",
        "src/heap/concurrent-allocator.h",
        "src/heap/concurrent-marking.cc",
        "src/heap/concurrent-marking.h",
        "src/heap/cppgc-js/cpp-heap.cc",
        "src/heap/cppgc-js/cpp-heap.h",
        "src/heap/cppgc-js/cpp-marking-state.h",
        "src/heap/cppgc-js/cpp-marking-state-inl.h",
        "src/heap/cppgc-js/cpp-snapshot.cc",
        "src/heap/cppgc-js/cpp-snapshot.h",
        "src/heap/cppgc-js/unified-heap-marking-state.h",
        "src/heap/cppgc-js/unified-heap-marking-verifier.cc",
        "src/heap/cppgc-js/unified-heap-marking-verifier.h",
        "src/heap/cppgc-js/unified-heap-marking-visitor.cc",
        "src/heap/cppgc-js/unified-heap-marking-visitor.h",
        "src/heap/embedder-tracing.cc",
        "src/heap/embedder-tracing.h",
        "src/heap/embedder-tracing-inl.h",
        "src/heap/factory-base.cc",
        "src/heap/factory-base.h",
        "src/heap/factory-base-inl.h",
        "src/heap/factory-inl.h",
        "src/heap/factory.cc",
        "src/heap/factory.h",
        "src/heap/finalization-registry-cleanup-task.cc",
        "src/heap/finalization-registry-cleanup-task.h",
        "src/heap/free-list-inl.h",
        "src/heap/free-list.cc",
        "src/heap/free-list.h",
        "src/heap/gc-idle-time-handler.cc",
        "src/heap/gc-idle-time-handler.h",
        "src/heap/gc-tracer.cc",
        "src/heap/gc-tracer.h",
        "src/heap/heap-allocator-inl.h",
        "src/heap/heap-allocator.cc",
        "src/heap/heap-allocator.h",
        "src/heap/heap-controller.cc",
        "src/heap/heap-controller.h",
        "src/heap/heap-inl.h",
        "src/heap/heap-layout-tracer.cc",
        "src/heap/heap-layout-tracer.h",
        "src/heap/heap-write-barrier-inl.h",
        "src/heap/heap-write-barrier.cc",
        "src/heap/heap-write-barrier.h",
        "src/heap/heap.cc",
        "src/heap/heap.h",
        "src/heap/incremental-marking-inl.h",
        "src/heap/incremental-marking-job.cc",
        "src/heap/incremental-marking-job.h",
        "src/heap/incremental-marking.cc",
        "src/heap/incremental-marking.h",
        "src/heap/index-generator.cc",
        "src/heap/index-generator.h",
        "src/heap/invalidated-slots-inl.h",
        "src/heap/invalidated-slots.cc",
        "src/heap/invalidated-slots.h",
        "src/heap/large-spaces.cc",
        "src/heap/large-spaces.h",
        "src/heap/linear-allocation-area.h",
        "src/heap/list.h",
        "src/heap/evacuation-allocator-inl.h",
        "src/heap/evacuation-allocator.h",
        "src/heap/local-factory.cc",
        "src/heap/local-factory.h",
        "src/heap/local-factory-inl.h",
        "src/heap/local-heap-inl.h",
        "src/heap/local-heap.cc",
        "src/heap/local-heap.h",
        "src/heap/mark-compact-inl.h",
        "src/heap/mark-compact.cc",
        "src/heap/mark-compact.h",
        "src/heap/marking-barrier.cc",
        "src/heap/marking-barrier.h",
        "src/heap/marking-barrier-inl.h",
        "src/heap/marking-visitor-inl.h",
        "src/heap/marking-visitor.h",
        "src/heap/marking-worklist-inl.h",
        "src/heap/marking-worklist.cc",
        "src/heap/marking-worklist.h",
        "src/heap/marking.cc",
        "src/heap/marking.h",
        "src/heap/memory-allocator.cc",
        "src/heap/memory-allocator.h",
        "src/heap/memory-chunk-inl.h",
        "src/heap/memory-chunk-layout.cc",
        "src/heap/memory-chunk-layout.h",
        "src/heap/memory-chunk.cc",
        "src/heap/memory-chunk.h",
        "src/heap/memory-measurement-inl.h",
        "src/heap/memory-measurement.cc",
        "src/heap/memory-measurement.h",
        "src/heap/memory-reducer.cc",
        "src/heap/memory-reducer.h",
        "src/heap/new-spaces-inl.h",
        "src/heap/new-spaces.cc",
        "src/heap/new-spaces.h",
        "src/heap/object-stats.cc",
        "src/heap/object-stats.h",
        "src/heap/objects-visiting-inl.h",
        "src/heap/objects-visiting.cc",
        "src/heap/objects-visiting.h",
        "src/heap/paged-spaces-inl.h",
        "src/heap/paged-spaces.cc",
        "src/heap/paged-spaces.h",
        "src/heap/parallel-work-item.h",
        "src/heap/parked-scope.h",
        "src/heap/progress-bar.h",
        "src/heap/read-only-heap-inl.h",
        "src/heap/read-only-heap.cc",
        "src/heap/read-only-heap.h",
        "src/heap/read-only-spaces.cc",
        "src/heap/read-only-spaces.h",
        "src/heap/remembered-set-inl.h",
        "src/heap/remembered-set.h",
        "src/heap/safepoint.cc",
        "src/heap/safepoint.h",
        "src/heap/scavenge-job.cc",
        "src/heap/scavenge-job.h",
        "src/heap/scavenger-inl.h",
        "src/heap/scavenger.cc",
        "src/heap/scavenger.h",
        "src/heap/slot-set.cc",
        "src/heap/slot-set.h",
        "src/heap/spaces-inl.h",
        "src/heap/spaces.cc",
        "src/heap/spaces.h",
        "src/heap/stress-marking-observer.cc",
        "src/heap/stress-marking-observer.h",
        "src/heap/stress-scavenge-observer.cc",
        "src/heap/stress-scavenge-observer.h",
        "src/heap/sweeper.cc",
        "src/heap/sweeper.h",
        "src/heap/weak-object-worklists.cc",
        "src/heap/weak-object-worklists.h",
        "src/ic/call-optimization.cc",
        "src/ic/call-optimization.h",
        "src/ic/handler-configuration-inl.h",
        "src/ic/handler-configuration.cc",
        "src/ic/handler-configuration.h",
        "src/ic/ic-inl.h",
        "src/ic/ic-stats.cc",
        "src/ic/ic-stats.h",
        "src/ic/ic.cc",
        "src/ic/ic.h",
        "src/ic/stub-cache.cc",
        "src/ic/stub-cache.h",
        "src/init/bootstrapper.cc",
        "src/init/bootstrapper.h",
        "src/init/heap-symbols.h",
        "src/init/icu_util.cc",
        "src/init/icu_util.h",
        "src/init/isolate-allocator.cc",
        "src/init/isolate-allocator.h",
        "src/init/setup-isolate.h",
        "src/init/startup-data-util.cc",
        "src/init/startup-data-util.h",
        "src/init/v8.cc",
        "src/init/v8.h",
        "src/interpreter/block-coverage-builder.h",
        "src/interpreter/bytecode-array-builder.cc",
        "src/interpreter/bytecode-array-builder.h",
        "src/interpreter/bytecode-array-iterator.cc",
        "src/interpreter/bytecode-array-iterator.h",
        "src/interpreter/bytecode-array-random-iterator.cc",
        "src/interpreter/bytecode-array-random-iterator.h",
        "src/interpreter/bytecode-array-writer.cc",
        "src/interpreter/bytecode-array-writer.h",
        "src/interpreter/bytecode-decoder.cc",
        "src/interpreter/bytecode-decoder.h",
        "src/interpreter/bytecode-flags.cc",
        "src/interpreter/bytecode-flags.h",
        "src/interpreter/bytecode-generator.cc",
        "src/interpreter/bytecode-generator.h",
        "src/interpreter/bytecode-jump-table.h",
        "src/interpreter/bytecode-label.cc",
        "src/interpreter/bytecode-label.h",
        "src/interpreter/bytecode-node.cc",
        "src/interpreter/bytecode-node.h",
        "src/interpreter/bytecode-operands.cc",
        "src/interpreter/bytecode-operands.h",
        "src/interpreter/bytecode-register-allocator.h",
        "src/interpreter/bytecode-register-optimizer.cc",
        "src/interpreter/bytecode-register-optimizer.h",
        "src/interpreter/bytecode-register.cc",
        "src/interpreter/bytecode-register.h",
        "src/interpreter/bytecode-source-info.cc",
        "src/interpreter/bytecode-source-info.h",
        "src/interpreter/bytecode-traits.h",
        "src/interpreter/bytecodes.cc",
        "src/interpreter/bytecodes.h",
        "src/interpreter/constant-array-builder.cc",
        "src/interpreter/constant-array-builder.h",
        "src/interpreter/control-flow-builders.cc",
        "src/interpreter/control-flow-builders.h",
        "src/interpreter/handler-table-builder.cc",
        "src/interpreter/handler-table-builder.h",
        "src/interpreter/interpreter-generator.h",
        "src/interpreter/interpreter-intrinsics.cc",
        "src/interpreter/interpreter-intrinsics.h",
        "src/interpreter/interpreter.cc",
        "src/interpreter/interpreter.h",
        "src/json/json-parser.cc",
        "src/json/json-parser.h",
        "src/json/json-stringifier.cc",
        "src/json/json-stringifier.h",
        "src/logging/code-events.h",
        "src/logging/counters-definitions.h",
        "src/logging/counters.cc",
        "src/logging/counters.h",
        "src/logging/counters-scopes.h",
        "src/logging/local-logger.cc",
        "src/logging/local-logger.h",
        "src/logging/log-inl.h",
        "src/logging/log-utils.cc",
        "src/logging/log-utils.h",
        "src/logging/log.cc",
        "src/logging/log.h",
        "src/logging/metrics.cc",
        "src/logging/metrics.h",
        "src/logging/tracing-flags.cc",
        "src/logging/tracing-flags.h",
        "src/logging/runtime-call-stats.h",
        "src/logging/runtime-call-stats-scope.h",
        "src/numbers/conversions-inl.h",
        "src/numbers/conversions.cc",
        "src/numbers/conversions.h",
        "src/numbers/hash-seed-inl.h",
        "src/numbers/math-random.cc",
        "src/numbers/math-random.h",
        "src/objects/all-objects-inl.h",
        "src/objects/allocation-site-inl.h",
        "src/objects/allocation-site-scopes-inl.h",
        "src/objects/allocation-site-scopes.h",
        "src/objects/allocation-site.h",
        "src/objects/api-callbacks-inl.h",
        "src/objects/api-callbacks.h",
        "src/objects/arguments-inl.h",
        "src/objects/arguments.h",
        "src/objects/backing-store.cc",
        "src/objects/backing-store.h",
        "src/objects/bigint-inl.h",
        "src/objects/bigint.cc",
        "src/objects/bigint.h",
        "src/objects/call-site-info-inl.h",
        "src/objects/call-site-info.cc",
        "src/objects/call-site-info.h",
        "src/objects/cell-inl.h",
        "src/objects/cell.h",
        "src/objects/code-inl.h",
        "src/objects/code-kind.cc",
        "src/objects/code-kind.h",
        "src/objects/code.cc",
        "src/objects/code.h",
        "src/objects/compilation-cache-table-inl.h",
        "src/objects/compilation-cache-table.cc",
        "src/objects/compilation-cache-table.h",
        "src/objects/compressed-slots-inl.h",
        "src/objects/compressed-slots.h",
        "src/objects/contexts-inl.h",
        "src/objects/contexts.cc",
        "src/objects/contexts.h",
        "src/objects/data-handler-inl.h",
        "src/objects/data-handler.h",
        "src/objects/debug-objects-inl.h",
        "src/objects/debug-objects.cc",
        "src/objects/debug-objects.h",
        "src/objects/descriptor-array-inl.h",
        "src/objects/descriptor-array.h",
        "src/objects/dictionary-inl.h",
        "src/objects/dictionary.h",
        "src/objects/elements-inl.h",
        "src/objects/elements-kind.cc",
        "src/objects/elements-kind.h",
        "src/objects/elements.cc",
        "src/objects/elements.h",
        "src/objects/embedder-data-array-inl.h",
        "src/objects/embedder-data-array.cc",
        "src/objects/embedder-data-array.h",
        "src/objects/embedder-data-slot-inl.h",
        "src/objects/embedder-data-slot.h",
        "src/objects/feedback-cell-inl.h",
        "src/objects/feedback-cell.h",
        "src/objects/feedback-vector-inl.h",
        "src/objects/feedback-vector.cc",
        "src/objects/feedback-vector.h",
        "src/objects/field-index-inl.h",
        "src/objects/field-index.h",
        "src/objects/field-type.cc",
        "src/objects/field-type.h",
        "src/objects/fixed-array-inl.h",
        "src/objects/fixed-array.h",
        "src/objects/foreign-inl.h",
        "src/objects/foreign.h",
        "src/objects/free-space-inl.h",
        "src/objects/free-space.h",
        "src/objects/function-kind.h",
        "src/objects/function-syntax-kind.h",
        "src/objects/hash-table-inl.h",
        "src/objects/hash-table.h",
        "src/objects/heap-number-inl.h",
        "src/objects/heap-number.h",
        "src/objects/heap-object-inl.h",
        "src/objects/heap-object.h",
        "src/objects/instance-type-inl.h",
        "src/objects/instance-type.h",
        "src/objects/internal-index.h",
        "src/objects/js-array-buffer-inl.h",
        "src/objects/js-array-buffer.cc",
        "src/objects/js-array-buffer.h",
        "src/objects/js-array-inl.h",
        "src/objects/js-array.h",
        "src/objects/js-collection-inl.h",
        "src/objects/js-collection-iterator.h",
        "src/objects/js-collection-iterator-inl.h",
        "src/objects/js-collection.h",
        "src/objects/js-function-inl.h",
        "src/objects/js-function.cc",
        "src/objects/js-function.h",
        "src/objects/js-generator-inl.h",
        "src/objects/js-generator.h",
        "src/objects/js-objects-inl.h",
        "src/objects/js-objects.cc",
        "src/objects/js-objects.h",
        "src/objects/js-promise-inl.h",
        "src/objects/js-promise.h",
        "src/objects/js-proxy-inl.h",
        "src/objects/js-proxy.h",
        "src/objects/js-regexp-inl.h",
        "src/objects/js-regexp-string-iterator-inl.h",
        "src/objects/js-regexp-string-iterator.h",
        "src/objects/js-regexp.cc",
        "src/objects/js-regexp.h",
        "src/objects/js-shadow-realms.h",
        "src/objects/js-shadow-realms-inl.h",
        "src/objects/js-struct.h",
        "src/objects/js-struct-inl.h",
        "src/objects/js-temporal-objects.h",
        "src/objects/js-temporal-objects-inl.h",
        "src/objects/js-temporal-objects.cc",
        "src/objects/js-weak-refs.h",
        "src/objects/js-weak-refs-inl.h",
        "src/objects/keys.cc",
        "src/objects/keys.h",
        "src/objects/literal-objects-inl.h",
        "src/objects/literal-objects.cc",
        "src/objects/literal-objects.h",
        "src/objects/lookup-cache-inl.h",
        "src/objects/lookup-cache.cc",
        "src/objects/lookup-cache.h",
        "src/objects/lookup-inl.h",
        "src/objects/lookup.cc",
        "src/objects/lookup.h",
        "src/objects/managed-inl.h",
        "src/objects/managed.cc",
        "src/objects/managed.h",
        "src/objects/map-inl.h",
        "src/objects/map-updater.cc",
        "src/objects/map-updater.h",
        "src/objects/map.cc",
        "src/objects/map.h",
        "src/objects/maybe-object-inl.h",
        "src/objects/maybe-object.h",
        "src/objects/megadom-handler-inl.h",
        "src/objects/megadom-handler.h",
        "src/objects/microtask-inl.h",
        "src/objects/microtask.h",
        "src/objects/module-inl.h",
        "src/objects/module.cc",
        "src/objects/module.h",
        "src/objects/name-inl.h",
        "src/objects/name.h",
        "src/objects/object-list-macros.h",
        "src/objects/object-macros-undef.h",
        "src/objects/object-macros.h",
        "src/objects/object-type.cc",
        "src/objects/object-type.h",
        "src/objects/objects-body-descriptors-inl.h",
        "src/objects/objects-body-descriptors.h",
        "src/objects/objects-inl.h",
        "src/objects/objects.cc",
        "src/objects/objects.h",
        "src/objects/objects-definitions.h",
        "src/objects/oddball-inl.h",
        "src/objects/oddball.h",
        "src/objects/option-utils.h",
        "src/objects/option-utils.cc",
        "src/objects/ordered-hash-table-inl.h",
        "src/objects/ordered-hash-table.cc",
        "src/objects/ordered-hash-table.h",
        "src/objects/osr-optimized-code-cache-inl.h",
        "src/objects/osr-optimized-code-cache.cc",
        "src/objects/osr-optimized-code-cache.h",
        "src/objects/primitive-heap-object-inl.h",
        "src/objects/primitive-heap-object.h",
        "src/objects/promise-inl.h",
        "src/objects/promise.h",
        "src/objects/property-array-inl.h",
        "src/objects/property-array.h",
        "src/objects/property-cell-inl.h",
        "src/objects/property-cell.h",
        "src/objects/property-descriptor-object-inl.h",
        "src/objects/property-descriptor-object.h",
        "src/objects/property-descriptor.cc",
        "src/objects/property-descriptor.h",
        "src/objects/property-details.h",
        "src/objects/property.cc",
        "src/objects/property.h",
        "src/objects/prototype-info-inl.h",
        "src/objects/prototype-info.h",
        "src/objects/prototype.h",
        "src/objects/prototype-inl.h",
        "src/objects/regexp-match-info-inl.h",
        "src/objects/regexp-match-info.h",
        "src/objects/scope-info-inl.h",
        "src/objects/scope-info.cc",
        "src/objects/scope-info.h",
        "src/objects/script-inl.h",
        "src/objects/script.h",
        "src/objects/shared-function-info-inl.h",
        "src/objects/shared-function-info.cc",
        "src/objects/shared-function-info.h",
        "src/objects/slots-atomic-inl.h",
        "src/objects/slots-inl.h",
        "src/objects/slots.h",
        "src/objects/smi-inl.h",
        "src/objects/smi.h",
        "src/objects/source-text-module.cc",
        "src/objects/source-text-module.h",
        "src/objects/source-text-module-inl.h",
        "src/objects/string-comparator.cc",
        "src/objects/string-comparator.h",
        "src/objects/string-inl.h",
        "src/objects/string-set-inl.h",
        "src/objects/string-set.h",
        "src/objects/string-table-inl.h",
        "src/objects/string-table.cc",
        "src/objects/symbol-table.cc",
        "src/objects/string-table.h",
        "src/objects/string.cc",
        "src/objects/string.h",
        "src/objects/struct-inl.h",
        "src/objects/struct.h",
        "src/objects/swiss-hash-table-helpers.h",
        "src/objects/swiss-name-dictionary-inl.h",
        "src/objects/swiss-name-dictionary.cc",
        "src/objects/swiss-name-dictionary.h",
        "src/objects/synthetic-module-inl.h",
        "src/objects/synthetic-module.cc",
        "src/objects/synthetic-module.h",
        "src/objects/tagged-field-inl.h",
        "src/objects/tagged-field.h",
        "src/objects/tagged-impl-inl.h",
        "src/objects/tagged-impl.cc",
        "src/objects/tagged-impl.h",
        "src/objects/tagged-index.h",
        "src/objects/tagged-value-inl.h",
        "src/objects/tagged-value.h",
        "src/objects/template-objects-inl.h",
        "src/objects/template-objects.cc",
        "src/objects/template-objects.h",
        "src/objects/templates-inl.h",
        "src/objects/templates.cc",
        "src/objects/templates.h",
        "src/objects/torque-defined-classes-inl.h",
        "src/objects/torque-defined-classes.h",
        "src/objects/transitions-inl.h",
        "src/objects/transitions.cc",
        "src/objects/transitions.h",
        "src/objects/turbofan-types-inl.h",
        "src/objects/turbofan-types.h",
        "src/objects/type-hints.cc",
        "src/objects/type-hints.h",
        "src/objects/value-serializer.cc",
        "src/objects/value-serializer.h",
        "src/objects/visitors.cc",
        "src/objects/visitors-inl.h",
        "src/objects/visitors.h",
        "src/parsing/expression-scope.h",
        "src/parsing/func-name-inferrer.cc",
        "src/parsing/func-name-inferrer.h",
        "src/parsing/import-assertions.cc",
        "src/parsing/import-assertions.h",
        "src/parsing/keywords-gen.h",
        "src/parsing/literal-buffer.cc",
        "src/parsing/literal-buffer.h",
        "src/parsing/parse-info.cc",
        "src/parsing/parse-info.h",
        "src/parsing/parser-base.h",
        "src/parsing/parser.cc",
        "src/parsing/parser.h",
        "src/parsing/parsing.cc",
        "src/parsing/parsing.h",
        "src/parsing/pending-compilation-error-handler.cc",
        "src/parsing/pending-compilation-error-handler.h",
        "src/parsing/preparse-data-impl.h",
        "src/parsing/preparse-data.cc",
        "src/parsing/preparse-data.h",
        "src/parsing/preparser-logger.h",
        "src/parsing/preparser.cc",
        "src/parsing/preparser.h",
        "src/parsing/rewriter.cc",
        "src/parsing/rewriter.h",
        "src/parsing/scanner-character-streams.cc",
        "src/parsing/scanner-character-streams.h",
        "src/parsing/scanner.cc",
        "src/parsing/scanner.h",
        "src/parsing/scanner-inl.h",
        "src/parsing/token.cc",
        "src/parsing/token.h",
        "src/profiler/allocation-tracker.cc",
        "src/profiler/allocation-tracker.h",
        "src/profiler/circular-queue-inl.h",
        "src/profiler/circular-queue.h",
        "src/profiler/cpu-profiler-inl.h",
        "src/profiler/cpu-profiler.cc",
        "src/profiler/cpu-profiler.h",
        "src/profiler/heap-profiler.cc",
        "src/profiler/heap-profiler.h",
        "src/profiler/heap-snapshot-generator-inl.h",
        "src/profiler/heap-snapshot-generator.cc",
        "src/profiler/heap-snapshot-generator.h",
        "src/profiler/profile-generator-inl.h",
        "src/profiler/profile-generator.cc",
        "src/profiler/profile-generator.h",
        "src/profiler/profiler-listener.cc",
        "src/profiler/profiler-listener.h",
        "src/profiler/profiler-stats.cc",
        "src/profiler/profiler-stats.h",
        "src/profiler/sampling-heap-profiler.cc",
        "src/profiler/sampling-heap-profiler.h",
        "src/profiler/strings-storage.cc",
        "src/profiler/strings-storage.h",
        "src/profiler/symbolizer.cc",
        "src/profiler/symbolizer.h",
        "src/profiler/tick-sample.cc",
        "src/profiler/tick-sample.h",
        "src/profiler/tracing-cpu-profiler.cc",
        "src/profiler/tracing-cpu-profiler.h",
        "src/profiler/weak-code-registry.h",
        "src/profiler/weak-code-registry.cc",
        "src/regexp/experimental/experimental-bytecode.cc",
        "src/regexp/experimental/experimental-bytecode.h",
        "src/regexp/experimental/experimental-compiler.cc",
        "src/regexp/experimental/experimental-compiler.h",
        "src/regexp/experimental/experimental-interpreter.cc",
        "src/regexp/experimental/experimental-interpreter.h",
        "src/regexp/experimental/experimental.cc",
        "src/regexp/experimental/experimental.h",
        "src/regexp/property-sequences.cc",
        "src/regexp/property-sequences.h",
        "src/regexp/regexp-ast.cc",
        "src/regexp/regexp-ast.h",
        "src/regexp/regexp-bytecode-generator-inl.h",
        "src/regexp/regexp-bytecode-generator.cc",
        "src/regexp/regexp-bytecode-generator.h",
        "src/regexp/regexp-bytecode-peephole.cc",
        "src/regexp/regexp-bytecode-peephole.h",
        "src/regexp/regexp-bytecodes.cc",
        "src/regexp/regexp-bytecodes.h",
        "src/regexp/regexp-compiler-tonode.cc",
        "src/regexp/regexp-compiler.cc",
        "src/regexp/regexp-compiler.h",
        "src/regexp/regexp-dotprinter.cc",
        "src/regexp/regexp-dotprinter.h",
        "src/regexp/regexp-error.cc",
        "src/regexp/regexp-error.h",
        "src/regexp/regexp-flags.h",
        "src/regexp/regexp-interpreter.cc",
        "src/regexp/regexp-interpreter.h",
        "src/regexp/regexp-macro-assembler-arch.h",
        "src/regexp/regexp-macro-assembler-tracer.cc",
        "src/regexp/regexp-macro-assembler-tracer.h",
        "src/regexp/regexp-macro-assembler.cc",
        "src/regexp/regexp-macro-assembler.h",
        "src/regexp/regexp-nodes.h",
        "src/regexp/regexp-parser.cc",
        "src/regexp/regexp-parser.h",
        "src/regexp/regexp-stack.cc",
        "src/regexp/regexp-stack.h",
        "src/regexp/regexp-utils.cc",
        "src/regexp/regexp-utils.h",
        "src/regexp/regexp.cc",
        "src/regexp/regexp.h",
        "src/regexp/special-case.h",
        "src/roots/roots-inl.h",
        "src/roots/roots.cc",
        "src/roots/roots.h",
        "src/runtime/runtime-array.cc",
        "src/runtime/runtime-atomics.cc",
        "src/runtime/runtime-bigint.cc",
        "src/runtime/runtime-classes.cc",
        "src/runtime/runtime-collections.cc",
        "src/runtime/runtime-compiler.cc",
        "src/runtime/runtime-date.cc",
        "src/runtime/runtime-debug.cc",
        "src/runtime/runtime-forin.cc",
        "src/runtime/runtime-function.cc",
        "src/runtime/runtime-futex.cc",
        "src/runtime/runtime-generator.cc",
        "src/runtime/runtime-internal.cc",
        "src/runtime/runtime-literals.cc",
        "src/runtime/runtime-module.cc",
        "src/runtime/runtime-numbers.cc",
        "src/runtime/runtime-object.cc",
        "src/runtime/runtime-operators.cc",
        "src/runtime/runtime-promise.cc",
        "src/runtime/runtime-proxy.cc",
        "src/runtime/runtime-regexp.cc",
        "src/runtime/runtime-scopes.cc",
        "src/runtime/runtime-shadow-realm.cc",
        "src/runtime/runtime-strings.cc",
        "src/runtime/runtime-symbol.cc",
        "src/runtime/runtime-test.cc",
        "src/runtime/runtime-trace.cc",
        "src/runtime/runtime-typedarray.cc",
        "src/runtime/runtime-utils.h",
        "src/runtime/runtime-weak-refs.cc",
        "src/runtime/runtime.cc",
        "src/runtime/runtime.h",
        "src/sandbox/external-pointer-inl.h",
        "src/sandbox/external-pointer.h",
        "src/sandbox/external-pointer-table.cc",
        "src/sandbox/external-pointer-table-inl.h",
        "src/sandbox/external-pointer-table.h",
        "src/sandbox/sandbox.cc",
        "src/sandbox/sandbox.h",
        "src/sandbox/sandboxed-pointer-inl.h",
        "src/sandbox/sandboxed-pointer.h",
        "src/base/sanitizer/asan.h",
        "src/base/sanitizer/lsan-page-allocator.cc",
        "src/base/sanitizer/lsan-page-allocator.h",
        "src/base/sanitizer/lsan-virtual-address-space.cc",
        "src/base/sanitizer/lsan-virtual-address-space.h",
        "src/base/sanitizer/msan.h",
        "src/base/sanitizer/tsan.h",
        "src/snapshot/code-serializer.cc",
        "src/snapshot/code-serializer.h",
        "src/snapshot/context-deserializer.cc",
        "src/snapshot/context-deserializer.h",
        "src/snapshot/context-serializer.cc",
        "src/snapshot/context-serializer.h",
        "src/snapshot/deserializer.cc",
        "src/snapshot/deserializer.h",
        "src/snapshot/embedded/embedded-data.cc",
        "src/snapshot/embedded/embedded-data-inl.h",
        "src/snapshot/embedded/embedded-data.h",
        "src/snapshot/embedded/embedded-file-writer-interface.h",
        "src/snapshot/object-deserializer.cc",
        "src/snapshot/object-deserializer.h",
        "src/snapshot/read-only-deserializer.cc",
        "src/snapshot/read-only-deserializer.h",
        "src/snapshot/read-only-serializer.cc",
        "src/snapshot/read-only-serializer.h",
        "src/snapshot/references.h",
        "src/snapshot/roots-serializer.cc",
        "src/snapshot/roots-serializer.h",
        "src/snapshot/serializer-deserializer.cc",
        "src/snapshot/serializer-deserializer.h",
        "src/snapshot/serializer.cc",
        "src/snapshot/serializer-inl.h",
        "src/snapshot/serializer.h",
        "src/snapshot/shared-heap-deserializer.h",
        "src/snapshot/shared-heap-deserializer.cc",
        "src/snapshot/shared-heap-serializer.h",
        "src/snapshot/shared-heap-serializer.cc",
        "src/snapshot/snapshot-compression.cc",
        "src/snapshot/snapshot-compression.h",
        "src/snapshot/snapshot-data.cc",
        "src/snapshot/snapshot-data.h",
        "src/snapshot/snapshot-source-sink.cc",
        "src/snapshot/snapshot-source-sink.h",
        "src/snapshot/snapshot-utils.cc",
        "src/snapshot/snapshot-utils.h",
        "src/snapshot/snapshot.cc",
        "src/snapshot/snapshot.h",
        "src/snapshot/startup-deserializer.cc",
        "src/snapshot/startup-deserializer.h",
        "src/snapshot/startup-serializer.cc",
        "src/snapshot/startup-serializer.h",
        "src/strings/char-predicates-inl.h",
        "src/strings/char-predicates.h",
        "src/strings/string-builder-inl.h",
        "src/strings/string-builder.cc",
        "src/strings/string-case.cc",
        "src/strings/string-case.h",
        "src/strings/string-hasher-inl.h",
        "src/strings/string-hasher.h",
        "src/strings/string-search.h",
        "src/strings/string-stream.cc",
        "src/strings/string-stream.h",
        "src/strings/unicode-decoder.cc",
        "src/strings/unicode-decoder.h",
        "src/strings/unicode-inl.h",
        "src/strings/unicode.cc",
        "src/strings/unicode.h",
        "src/strings/uri.cc",
        "src/strings/uri.h",
        "src/tasks/cancelable-task.cc",
        "src/tasks/cancelable-task.h",
        "src/tasks/operations-barrier.cc",
        "src/tasks/operations-barrier.h",
        "src/tasks/task-utils.cc",
        "src/tasks/task-utils.h",
        "src/temporal/temporal-parser.cc",
        "src/temporal/temporal-parser.h",
        "src/torque/runtime-macro-shims.h",
        "src/third_party/siphash/halfsiphash.cc",
        "src/third_party/siphash/halfsiphash.h",
        "src/third_party/utf8-decoder/utf8-decoder.h",
        "src/tracing/trace-event.cc",
        "src/tracing/trace-event.h",
        "src/tracing/traced-value.cc",
        "src/tracing/traced-value.h",
        "src/tracing/tracing-category-observer.cc",
        "src/tracing/tracing-category-observer.h",
        "src/trap-handler/handler-inside-posix.h",
        "src/trap-handler/handler-inside.cc",
        "src/trap-handler/handler-outside.cc",
        "src/trap-handler/handler-shared.cc",
        "src/trap-handler/trap-handler-internal.h",
        "src/trap-handler/trap-handler.h",
        "src/utils/address-map.cc",
        "src/utils/address-map.h",
        "src/utils/allocation.cc",
        "src/utils/allocation.h",
        "src/utils/bit-vector.cc",
        "src/utils/bit-vector.h",
        "src/utils/boxed-float.h",
        "src/utils/detachable-vector.cc",
        "src/utils/detachable-vector.h",
        "src/utils/identity-map.cc",
        "src/utils/identity-map.h",
        "src/utils/locked-queue-inl.h",
        "src/utils/locked-queue.h",
        "src/utils/memcopy.cc",
        "src/utils/memcopy.h",
        "src/utils/ostreams.cc",
        "src/utils/ostreams.h",
        "src/utils/scoped-list.h",
        "src/utils/utils-inl.h",
        "src/utils/utils.cc",
        "src/utils/utils.h",
        "src/utils/version.cc",
        "src/utils/version.h",
        "src/web-snapshot/web-snapshot.h",
        "src/web-snapshot/web-snapshot.cc",
        "src/zone/accounting-allocator.cc",
        "src/zone/accounting-allocator.h",
        "src/zone/compressed-zone-ptr.h",
        "src/zone/type-stats.cc",
        "src/zone/type-stats.h",
        "src/zone/zone-allocator.h",
        "src/zone/zone-chunk-list.h",
        "src/zone/zone-compression.h",
        "src/zone/zone-containers.h",
        "src/zone/zone-handle-set.h",
        "src/zone/zone-hashmap.h",
        "src/zone/zone-list-inl.h",
        "src/zone/zone-list.h",
        "src/zone/zone-segment.cc",
        "src/zone/zone-segment.h",
        "src/zone/zone-type-traits.h",
        "src/zone/zone-utils.h",
        "src/zone/zone.cc",
        "src/zone/zone.h",
        "src/asmjs/asm-js.h",
        "src/execution/pointer-authentication-dummy.h",
        "src/heap/third-party/heap-api.h",
        "src/heap/third-party/heap-api-stub.cc",
    ] + select({
        "@v8//bazel/config:v8_target_ia32": [
            "src/baseline/ia32/baseline-assembler-ia32-inl.h",
            "src/baseline/ia32/baseline-compiler-ia32-inl.h",
            "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.h",
            "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc",
            "src/codegen/ia32/cpu-ia32.cc",
            "src/codegen/ia32/assembler-ia32-inl.h",
            "src/codegen/ia32/assembler-ia32.cc",
            "src/codegen/ia32/assembler-ia32.h",
            "src/codegen/ia32/constants-ia32.h",
            "src/codegen/ia32/fma-instr.h",
            "src/codegen/ia32/interface-descriptors-ia32-inl.h",
            "src/codegen/ia32/sse-instr.h",
            "src/codegen/ia32/macro-assembler-ia32.cc",
            "src/codegen/ia32/macro-assembler-ia32.h",
            "src/codegen/ia32/register-ia32.h",
            "src/codegen/ia32/reglist-ia32.h",
            "src/compiler/backend/ia32/code-generator-ia32.cc",
            "src/compiler/backend/ia32/instruction-codes-ia32.h",
            "src/compiler/backend/ia32/instruction-scheduler-ia32.cc",
            "src/compiler/backend/ia32/instruction-selector-ia32.cc",
            "src/deoptimizer/ia32/deoptimizer-ia32.cc",
            "src/diagnostics/ia32/disasm-ia32.cc",
            "src/diagnostics/ia32/unwinder-ia32.cc",
            "src/execution/ia32/frame-constants-ia32.cc",
            "src/execution/ia32/frame-constants-ia32.h",
            "src/regexp/ia32/regexp-macro-assembler-ia32.cc",
            "src/regexp/ia32/regexp-macro-assembler-ia32.h",
            "src/wasm/baseline/ia32/liftoff-assembler-ia32.h",
        ],
        "@v8//bazel/config:v8_target_x64": [
            "src/baseline/x64/baseline-assembler-x64-inl.h",
            "src/baseline/x64/baseline-compiler-x64-inl.h",
            "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.h",
            "src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc",
            "src/codegen/x64/cpu-x64.cc",
            "src/codegen/x64/assembler-x64-inl.h",
            "src/codegen/x64/assembler-x64.cc",
            "src/codegen/x64/assembler-x64.h",
            "src/codegen/x64/constants-x64.h",
            "src/codegen/x64/fma-instr.h",
            "src/codegen/x64/interface-descriptors-x64-inl.h",
            "src/codegen/x64/sse-instr.h",
            "src/codegen/x64/macro-assembler-x64.cc",
            "src/codegen/x64/macro-assembler-x64.h",
            "src/codegen/x64/register-x64.h",
            "src/codegen/x64/reglist-x64.h",
            "src/compiler/backend/x64/code-generator-x64.cc",
            "src/compiler/backend/x64/instruction-codes-x64.h",
            "src/compiler/backend/x64/instruction-scheduler-x64.cc",
            "src/compiler/backend/x64/instruction-selector-x64.cc",
            "src/compiler/backend/x64/unwinding-info-writer-x64.cc",
            "src/compiler/backend/x64/unwinding-info-writer-x64.h",
            "src/deoptimizer/x64/deoptimizer-x64.cc",
            "src/diagnostics/x64/disasm-x64.cc",
            "src/diagnostics/x64/eh-frame-x64.cc",
            "src/diagnostics/x64/unwinder-x64.cc",
            "src/execution/x64/frame-constants-x64.cc",
            "src/execution/x64/frame-constants-x64.h",
            "src/regexp/x64/regexp-macro-assembler-x64.cc",
            "src/regexp/x64/regexp-macro-assembler-x64.h",
            "src/wasm/baseline/x64/liftoff-assembler-x64.h",
        ],
        "@v8//bazel/config:v8_target_arm": [
            "src/baseline/arm/baseline-assembler-arm-inl.h",
            "src/baseline/arm/baseline-compiler-arm-inl.h",
            "src/codegen/arm/assembler-arm-inl.h",
            "src/codegen/arm/assembler-arm.cc",
            "src/codegen/arm/assembler-arm.h",
            "src/codegen/arm/constants-arm.cc",
            "src/codegen/arm/constants-arm.h",
            "src/codegen/arm/cpu-arm.cc",
            "src/codegen/arm/interface-descriptors-arm-inl.h",
            "src/codegen/arm/macro-assembler-arm.cc",
            "src/codegen/arm/macro-assembler-arm.h",
            "src/codegen/arm/register-arm.h",
            "src/codegen/arm/reglist-arm.h",
            "src/compiler/backend/arm/code-generator-arm.cc",
            "src/compiler/backend/arm/instruction-codes-arm.h",
            "src/compiler/backend/arm/instruction-scheduler-arm.cc",
            "src/compiler/backend/arm/instruction-selector-arm.cc",
            "src/compiler/backend/arm/unwinding-info-writer-arm.cc",
            "src/compiler/backend/arm/unwinding-info-writer-arm.h",
            "src/deoptimizer/arm/deoptimizer-arm.cc",
            "src/diagnostics/arm/disasm-arm.cc",
            "src/diagnostics/arm/eh-frame-arm.cc",
            "src/diagnostics/arm/unwinder-arm.cc",
            "src/execution/arm/frame-constants-arm.cc",
            "src/execution/arm/frame-constants-arm.h",
            "src/execution/arm/simulator-arm.cc",
            "src/execution/arm/simulator-arm.h",
            "src/regexp/arm/regexp-macro-assembler-arm.cc",
            "src/regexp/arm/regexp-macro-assembler-arm.h",
            "src/wasm/baseline/arm/liftoff-assembler-arm.h",
        ],
        "@v8//bazel/config:v8_target_arm64": [
            "src/baseline/arm64/baseline-assembler-arm64-inl.h",
            "src/baseline/arm64/baseline-compiler-arm64-inl.h",
            "src/codegen/arm64/assembler-arm64-inl.h",
            "src/codegen/arm64/assembler-arm64.cc",
            "src/codegen/arm64/assembler-arm64.h",
            "src/codegen/arm64/constants-arm64.h",
            "src/codegen/arm64/cpu-arm64.cc",
            "src/codegen/arm64/decoder-arm64-inl.h",
            "src/codegen/arm64/decoder-arm64.cc",
            "src/codegen/arm64/decoder-arm64.h",
            "src/codegen/arm64/interface-descriptors-arm64-inl.h",
            "src/codegen/arm64/instructions-arm64-constants.cc",
            "src/codegen/arm64/instructions-arm64.cc",
            "src/codegen/arm64/instructions-arm64.h",
            "src/codegen/arm64/macro-assembler-arm64-inl.h",
            "src/codegen/arm64/macro-assembler-arm64.cc",
            "src/codegen/arm64/macro-assembler-arm64.h",
            "src/codegen/arm64/register-arm64.cc",
            "src/codegen/arm64/register-arm64.h",
            "src/codegen/arm64/reglist-arm64.h",
            "src/codegen/arm64/utils-arm64.cc",
            "src/codegen/arm64/utils-arm64.h",
            "src/compiler/backend/arm64/code-generator-arm64.cc",
            "src/compiler/backend/arm64/instruction-codes-arm64.h",
            "src/compiler/backend/arm64/instruction-scheduler-arm64.cc",
            "src/compiler/backend/arm64/instruction-selector-arm64.cc",
            "src/compiler/backend/arm64/unwinding-info-writer-arm64.cc",
            "src/compiler/backend/arm64/unwinding-info-writer-arm64.h",
            "src/deoptimizer/arm64/deoptimizer-arm64.cc",
            "src/diagnostics/arm64/disasm-arm64.cc",
            "src/diagnostics/arm64/disasm-arm64.h",
            "src/diagnostics/arm64/eh-frame-arm64.cc",
            "src/diagnostics/arm64/unwinder-arm64.cc",
            "src/execution/arm64/frame-constants-arm64.cc",
            "src/execution/arm64/frame-constants-arm64.h",
            "src/execution/arm64/pointer-auth-arm64.cc",
            "src/execution/arm64/simulator-arm64.cc",
            "src/execution/arm64/simulator-arm64.h",
            "src/execution/arm64/simulator-logic-arm64.cc",
            "src/regexp/arm64/regexp-macro-assembler-arm64.cc",
            "src/regexp/arm64/regexp-macro-assembler-arm64.h",
            "src/wasm/baseline/arm64/liftoff-assembler-arm64.h",
        ],
        "@v8//bazel/config:v8_target_s390x": [
            "src/baseline/s390/baseline-assembler-s390-inl.h",
            "src/baseline/s390/baseline-compiler-s390-inl.h",
            "src/codegen/s390/assembler-s390.cc",
            "src/codegen/s390/assembler-s390.h",
            "src/codegen/s390/assembler-s390-inl.h",
            "src/codegen/s390/constants-s390.cc",
            "src/codegen/s390/constants-s390.h",
            "src/codegen/s390/cpu-s390.cc",
            "src/codegen/s390/interface-descriptors-s390-inl.h",
            "src/codegen/s390/macro-assembler-s390.cc",
            "src/codegen/s390/macro-assembler-s390.h",
            "src/codegen/s390/register-s390.h",
            "src/codegen/s390/reglist-s390.h",
            "src/compiler/backend/s390/code-generator-s390.cc",
            "src/compiler/backend/s390/instruction-codes-s390.h",
            "src/compiler/backend/s390/instruction-scheduler-s390.cc",
            "src/compiler/backend/s390/instruction-selector-s390.cc",
            "src/compiler/backend/s390/unwinding-info-writer-s390.cc",
            "src/compiler/backend/s390/unwinding-info-writer-s390.h",
            "src/deoptimizer/s390/deoptimizer-s390.cc",
            "src/diagnostics/s390/disasm-s390.cc",
            "src/diagnostics/s390/eh-frame-s390.cc",
            "src/diagnostics/s390/unwinder-s390.cc",
            "src/execution/s390/frame-constants-s390.cc",
            "src/execution/s390/frame-constants-s390.h",
            "src/execution/s390/simulator-s390.cc",
            "src/execution/s390/simulator-s390.h",
            "src/regexp/s390/regexp-macro-assembler-s390.cc",
            "src/regexp/s390/regexp-macro-assembler-s390.h",
            "src/wasm/baseline/s390/liftoff-assembler-s390.h",
        ],
        "@v8//bazel/config:v8_target_riscv64": [
            "src/baseline/riscv64/baseline-assembler-riscv64-inl.h",
            "src/baseline/riscv64/baseline-compiler-riscv64-inl.h",
            "src/codegen/riscv64/assembler-riscv64.cc",
            "src/codegen/riscv64/assembler-riscv64.h",
            "src/codegen/riscv64/assembler-riscv64-inl.h",
            "src/codegen/riscv64/constants-riscv64.cc",
            "src/codegen/riscv64/constants-riscv64.h",
            "src/codegen/riscv64/cpu-riscv64.cc",
            "src/codegen/riscv64/interface-descriptors-riscv64-inl.h",
            "src/codegen/riscv64/macro-assembler-riscv64.cc",
            "src/codegen/riscv64/macro-assembler-riscv64.h",
            "src/codegen/riscv64/register-riscv64.h",
            "src/codegen/riscv64/reglist-riscv64.h",
            "src/compiler/backend/riscv64/code-generator-riscv64.cc",
            "src/compiler/backend/riscv64/instruction-codes-riscv64.h",
            "src/compiler/backend/riscv64/instruction-scheduler-riscv64.cc",
            "src/compiler/backend/riscv64/instruction-selector-riscv64.cc",
            "src/deoptimizer/riscv64/deoptimizer-riscv64.cc",
            "src/diagnostics/riscv64/disasm-riscv64.cc",
            "src/diagnostics/riscv64/unwinder-riscv64.cc",
            "src/execution/riscv64/frame-constants-riscv64.cc",
            "src/execution/riscv64/frame-constants-riscv64.h",
            "src/execution/riscv64/simulator-riscv64.cc",
            "src/execution/riscv64/simulator-riscv64.h",
            "src/regexp/riscv64/regexp-macro-assembler-riscv64.cc",
            "src/regexp/riscv64/regexp-macro-assembler-riscv64.h",
            "src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h",
        ],
        "@v8//bazel/config:v8_target_ppc64le": [
            "src/baseline/ppc/baseline-assembler-ppc-inl.h",
            "src/baseline/ppc/baseline-compiler-ppc-inl.h",
            "src/codegen/ppc/assembler-ppc.cc",
            "src/codegen/ppc/assembler-ppc.h",
            "src/codegen/ppc/assembler-ppc-inl.h",
            "src/codegen/ppc/constants-ppc.cc",
            "src/codegen/ppc/constants-ppc.h",
            "src/codegen/ppc/cpu-ppc.cc",
            "src/codegen/ppc/interface-descriptors-ppc-inl.h",
            "src/codegen/ppc/macro-assembler-ppc.cc",
            "src/codegen/ppc/macro-assembler-ppc.h",
            "src/codegen/ppc/register-ppc.h",
            "src/codegen/ppc/reglist-ppc.h",
            "src/compiler/backend/ppc/code-generator-ppc.cc",
            "src/compiler/backend/ppc/instruction-codes-ppc.h",
            "src/compiler/backend/ppc/instruction-scheduler-ppc.cc",
            "src/compiler/backend/ppc/instruction-selector-ppc.cc",
            "src/compiler/backend/ppc/unwinding-info-writer-ppc.cc",
            "src/compiler/backend/ppc/unwinding-info-writer-ppc.h",
            "src/deoptimizer/ppc/deoptimizer-ppc.cc",
            "src/diagnostics/ppc/disasm-ppc.cc",
            "src/diagnostics/ppc/eh-frame-ppc.cc",
            "src/diagnostics/ppc/unwinder-ppc.cc",
            "src/execution/ppc/frame-constants-ppc.cc",
            "src/execution/ppc/frame-constants-ppc.h",
            "src/execution/ppc/simulator-ppc.cc",
            "src/execution/ppc/simulator-ppc.h",
            "src/regexp/ppc/regexp-macro-assembler-ppc.cc",
            "src/regexp/ppc/regexp-macro-assembler-ppc.h",
            "src/wasm/baseline/ppc/liftoff-assembler-ppc.h",
        ],
    }) + select({
        # Only for x64 builds and for arm64 with x64 host simulator.
        "@v8//bazel/config:is_non_android_posix_x64": [
            "src/trap-handler/handler-inside-posix.cc",
            "src/trap-handler/handler-outside-posix.cc",
        ],
        "//conditions:default": [],
    }) + select({
        "@v8//bazel/config:v8_arm64_simulator": [
            "src/trap-handler/trap-handler-simulator.h",
            "src/trap-handler/handler-outside-simulator.cc",
        ],
        "//conditions:default": [],
    }) + select({
        "@v8//bazel/config:is_windows": [
            "src/trap-handler/handler-inside-win.cc",
            "src/trap-handler/handler-inside-win.h",
            "src/trap-handler/handler-outside-win.cc",
        ],
        "//conditions:default": [],
    }) + select({
        "@v8//bazel/config:is_windows_64bit": [
            "src/diagnostics/unwinding-info-win64.cc",
            "src/diagnostics/unwinding-info-win64.h",
        ],
        "//conditions:default": [],
    }) + select({
        ":is_v8_enable_webassembly": [
            "src/asmjs/asm-js.cc",
            "src/asmjs/asm-names.h",
            "src/asmjs/asm-parser.cc",
            "src/asmjs/asm-parser.h",
            "src/asmjs/asm-scanner.cc",
            "src/asmjs/asm-scanner.h",
            "src/asmjs/asm-types.cc",
            "src/asmjs/asm-types.h",
            "src/compiler/int64-lowering.h",
            "src/compiler/wasm-compiler.h",
            "src/compiler/wasm-escape-analysis.h",
            "src/compiler/wasm-inlining.h",
            "src/compiler/wasm-loop-peeling.h",
            "src/debug/debug-wasm-objects.cc",
            "src/debug/debug-wasm-objects.h",
            "src/debug/debug-wasm-objects-inl.h",
            "src/runtime/runtime-test-wasm.cc",
            "src/runtime/runtime-wasm.cc",
            "src/wasm/baseline/liftoff-assembler.cc",
            "src/wasm/baseline/liftoff-assembler-defs.h",
            "src/wasm/baseline/liftoff-assembler.h",
            "src/wasm/baseline/liftoff-compiler.cc",
            "src/wasm/baseline/liftoff-compiler.h",
            "src/wasm/baseline/liftoff-register.h",
            "src/wasm/branch-hint-map.h",
            "src/wasm/canonical-types.cc",
            "src/wasm/canonical-types.h",
            "src/wasm/code-space-access.cc",
            "src/wasm/code-space-access.h",
            "src/wasm/compilation-environment.h",
            "src/wasm/decoder.h",
            "src/wasm/function-body-decoder.cc",
            "src/wasm/function-body-decoder.h",
            "src/wasm/function-body-decoder-impl.h",
            "src/wasm/function-compiler.cc",
            "src/wasm/function-compiler.h",
            "src/wasm/graph-builder-interface.cc",
            "src/wasm/graph-builder-interface.h",
            "src/wasm/init-expr-interface.cc",
            "src/wasm/init-expr-interface.h",
            "src/wasm/jump-table-assembler.cc",
            "src/wasm/jump-table-assembler.h",
            "src/wasm/leb-helper.h",
            "src/wasm/local-decl-encoder.cc",
            "src/wasm/local-decl-encoder.h",
            "src/wasm/memory-protection-key.cc",
            "src/wasm/memory-protection-key.h",
            "src/wasm/memory-tracing.cc",
            "src/wasm/memory-tracing.h",
            "src/wasm/module-compiler.cc",
            "src/wasm/module-compiler.h",
            "src/wasm/module-decoder.cc",
            "src/wasm/module-decoder.h",
            "src/wasm/module-instantiate.cc",
            "src/wasm/module-instantiate.h",
            "src/wasm/object-access.h",
            "src/wasm/signature-map.cc",
            "src/wasm/signature-map.h",
            "src/wasm/simd-shuffle.cc",
            "src/wasm/simd-shuffle.h",
            "src/wasm/stacks.h",
            "src/wasm/streaming-decoder.cc",
            "src/wasm/streaming-decoder.h",
            "src/wasm/struct-types.h",
            "src/wasm/sync-streaming-decoder.cc",
            "src/wasm/value-type.cc",
            "src/wasm/value-type.h",
            "src/wasm/wasm-arguments.h",
            "src/wasm/wasm-code-manager.cc",
            "src/wasm/wasm-code-manager.h",
            "src/wasm/wasm-debug.cc",
            "src/wasm/wasm-debug.h",
            "src/wasm/wasm-engine.cc",
            "src/wasm/wasm-engine.h",
            "src/wasm/wasm-external-refs.cc",
            "src/wasm/wasm-external-refs.h",
            "src/wasm/wasm-features.cc",
            "src/wasm/wasm-features.h",
            "src/wasm/wasm-import-wrapper-cache.cc",
            "src/wasm/wasm-import-wrapper-cache.h",
            "src/wasm/wasm-init-expr.cc",
            "src/wasm/wasm-init-expr.h",
            "src/wasm/wasm-js.cc",
            "src/wasm/wasm-js.h",
            "src/wasm/wasm-linkage.h",
            "src/wasm/wasm-module-builder.cc",
            "src/wasm/wasm-module-builder.h",
            "src/wasm/wasm-module.cc",
            "src/wasm/wasm-module.h",
            "src/wasm/wasm-module-sourcemap.cc",
            "src/wasm/wasm-module-sourcemap.h",
            "src/wasm/wasm-objects.cc",
            "src/wasm/wasm-objects.h",
            "src/wasm/wasm-objects-inl.h",
            "src/wasm/wasm-opcodes.cc",
            "src/wasm/wasm-opcodes.h",
            "src/wasm/wasm-opcodes-inl.h",
            "src/wasm/wasm-result.cc",
            "src/wasm/wasm-result.h",
            "src/wasm/wasm-serialization.cc",
            "src/wasm/wasm-serialization.h",
            "src/wasm/wasm-subtyping.cc",
            "src/wasm/wasm-subtyping.h",
            "src/wasm/wasm-tier.h",
            "src/wasm/wasm-value.h",
        ],
        "//conditions:default": [],
    }),
)

filegroup(
    name = "icu/v8_base_without_compiler_files",
    srcs = [
        "src/builtins/builtins-intl.cc",
        "src/builtins/builtins-intl-gen.cc",
        "src/objects/intl-objects.cc",
        "src/objects/intl-objects.h",
        "src/objects/js-break-iterator.cc",
        "src/objects/js-break-iterator.h",
        "src/objects/js-break-iterator-inl.h",
        "src/objects/js-collator.cc",
        "src/objects/js-collator.h",
        "src/objects/js-collator-inl.h",
        "src/objects/js-date-time-format.cc",
        "src/objects/js-date-time-format.h",
        "src/objects/js-date-time-format-inl.h",
        "src/objects/js-display-names.cc",
        "src/objects/js-display-names.h",
        "src/objects/js-display-names-inl.h",
        "src/objects/js-list-format.cc",
        "src/objects/js-list-format.h",
        "src/objects/js-list-format-inl.h",
        "src/objects/js-locale.cc",
        "src/objects/js-locale.h",
        "src/objects/js-locale-inl.h",
        "src/objects/js-number-format.cc",
        "src/objects/js-number-format.h",
        "src/objects/js-number-format-inl.h",
        "src/objects/js-plural-rules.cc",
        "src/objects/js-plural-rules.h",
        "src/objects/js-plural-rules-inl.h",
        "src/objects/js-relative-time-format.cc",
        "src/objects/js-relative-time-format.h",
        "src/objects/js-relative-time-format-inl.h",
        "src/objects/js-segment-iterator.cc",
        "src/objects/js-segment-iterator.h",
        "src/objects/js-segment-iterator-inl.h",
        "src/objects/js-segmenter.cc",
        "src/objects/js-segmenter.h",
        "src/objects/js-segmenter-inl.h",
        "src/objects/js-segments.cc",
        "src/objects/js-segments.h",
        "src/objects/js-segments-inl.h",
        "src/runtime/runtime-intl.cc",
        "src/strings/char-predicates.cc",
    ],
)

filegroup(
    name = "v8_compiler_files",
    srcs = [
        "src/builtins/profile-data-reader.h",
        "src/compiler/access-builder.cc",
        "src/compiler/access-builder.h",
        "src/compiler/access-info.cc",
        "src/compiler/access-info.h",
        "src/compiler/add-type-assertions-reducer.cc",
        "src/compiler/add-type-assertions-reducer.h",
        "src/compiler/all-nodes.cc",
        "src/compiler/all-nodes.h",
        "src/compiler/allocation-builder.h",
        "src/compiler/allocation-builder-inl.h",
        "src/compiler/backend/code-generator.cc",
        "src/compiler/backend/code-generator.h",
        "src/compiler/backend/code-generator-impl.h",
        "src/compiler/backend/frame-elider.cc",
        "src/compiler/backend/frame-elider.h",
        "src/compiler/backend/gap-resolver.cc",
        "src/compiler/backend/gap-resolver.h",
        "src/compiler/backend/instruction.cc",
        "src/compiler/backend/instruction.h",
        "src/compiler/backend/instruction-codes.h",
        "src/compiler/backend/instruction-scheduler.cc",
        "src/compiler/backend/instruction-scheduler.h",
        "src/compiler/backend/instruction-selector.cc",
        "src/compiler/backend/instruction-selector.h",
        "src/compiler/backend/instruction-selector-impl.h",
        "src/compiler/backend/jump-threading.cc",
        "src/compiler/backend/jump-threading.h",
        "src/compiler/backend/mid-tier-register-allocator.cc",
        "src/compiler/backend/mid-tier-register-allocator.h",
        "src/compiler/backend/move-optimizer.cc",
        "src/compiler/backend/move-optimizer.h",
        "src/compiler/backend/register-allocation.h",
        "src/compiler/backend/register-allocator.cc",
        "src/compiler/backend/register-allocator.h",
        "src/compiler/backend/register-allocator-verifier.cc",
        "src/compiler/backend/register-allocator-verifier.h",
        "src/compiler/backend/spill-placer.cc",
        "src/compiler/backend/spill-placer.h",
        "src/compiler/backend/unwinding-info-writer.h",
        "src/compiler/basic-block-instrumentor.cc",
        "src/compiler/basic-block-instrumentor.h",
        "src/compiler/branch-condition-duplicator.cc",
        "src/compiler/branch-condition-duplicator.h",
        "src/compiler/branch-elimination.cc",
        "src/compiler/branch-elimination.h",
        "src/compiler/bytecode-analysis.cc",
        "src/compiler/bytecode-analysis.h",
        "src/compiler/bytecode-graph-builder.cc",
        "src/compiler/bytecode-graph-builder.h",
        "src/compiler/bytecode-liveness-map.cc",
        "src/compiler/bytecode-liveness-map.h",
        "src/compiler/c-linkage.cc",
        "src/compiler/checkpoint-elimination.cc",
        "src/compiler/checkpoint-elimination.h",
        "src/compiler/code-assembler.cc",
        "src/compiler/code-assembler.h",
        "src/compiler/common-node-cache.cc",
        "src/compiler/common-node-cache.h",
        "src/compiler/common-operator.cc",
        "src/compiler/common-operator.h",
        "src/compiler/common-operator-reducer.cc",
        "src/compiler/common-operator-reducer.h",
        "src/compiler/compilation-dependencies.cc",
        "src/compiler/compilation-dependencies.h",
        "src/compiler/compiler-source-position-table.cc",
        "src/compiler/compiler-source-position-table.h",
        "src/compiler/constant-folding-reducer.cc",
        "src/compiler/constant-folding-reducer.h",
        "src/compiler/control-equivalence.cc",
        "src/compiler/control-equivalence.h",
        "src/compiler/control-flow-optimizer.cc",
        "src/compiler/control-flow-optimizer.h",
        "src/compiler/csa-load-elimination.cc",
        "src/compiler/csa-load-elimination.h",
        "src/compiler/dead-code-elimination.cc",
        "src/compiler/dead-code-elimination.h",
        "src/compiler/decompression-optimizer.cc",
        "src/compiler/decompression-optimizer.h",
        "src/compiler/diamond.h",
        "src/compiler/effect-control-linearizer.cc",
        "src/compiler/effect-control-linearizer.h",
        "src/compiler/escape-analysis.cc",
        "src/compiler/escape-analysis.h",
        "src/compiler/escape-analysis-reducer.cc",
        "src/compiler/escape-analysis-reducer.h",
        "src/compiler/fast-api-calls.cc",
        "src/compiler/fast-api-calls.h",
        "src/compiler/feedback-source.cc",
        "src/compiler/feedback-source.h",
        "src/compiler/frame.cc",
        "src/compiler/frame.h",
        "src/compiler/frame-states.cc",
        "src/compiler/frame-states.h",
        "src/compiler/functional-list.h",
        "src/compiler/globals.h",
        "src/compiler/graph.cc",
        "src/compiler/graph.h",
        "src/compiler/graph-assembler.cc",
        "src/compiler/graph-assembler.h",
        "src/compiler/graph-reducer.cc",
        "src/compiler/graph-reducer.h",
        "src/compiler/graph-trimmer.cc",
        "src/compiler/graph-trimmer.h",
        "src/compiler/graph-visualizer.cc",
        "src/compiler/graph-visualizer.h",
        "src/compiler/graph-zone-traits.h",
        "src/compiler/heap-refs.cc",
        "src/compiler/heap-refs.h",
        "src/compiler/js-call-reducer.cc",
        "src/compiler/js-call-reducer.h",
        "src/compiler/js-context-specialization.cc",
        "src/compiler/js-context-specialization.h",
        "src/compiler/js-create-lowering.cc",
        "src/compiler/js-create-lowering.h",
        "src/compiler/js-generic-lowering.cc",
        "src/compiler/js-generic-lowering.h",
        "src/compiler/js-graph.cc",
        "src/compiler/js-graph.h",
        "src/compiler/js-heap-broker.cc",
        "src/compiler/js-heap-broker.h",
        "src/compiler/js-inlining.cc",
        "src/compiler/js-inlining.h",
        "src/compiler/js-inlining-heuristic.cc",
        "src/compiler/js-inlining-heuristic.h",
        "src/compiler/js-intrinsic-lowering.cc",
        "src/compiler/js-intrinsic-lowering.h",
        "src/compiler/js-native-context-specialization.cc",
        "src/compiler/js-native-context-specialization.h",
        "src/compiler/js-operator.cc",
        "src/compiler/js-operator.h",
        "src/compiler/js-type-hint-lowering.cc",
        "src/compiler/js-type-hint-lowering.h",
        "src/compiler/js-typed-lowering.cc",
        "src/compiler/js-typed-lowering.h",
        "src/compiler/linkage.cc",
        "src/compiler/linkage.h",
        "src/compiler/load-elimination.cc",
        "src/compiler/load-elimination.h",
        "src/compiler/loop-analysis.cc",
        "src/compiler/loop-analysis.h",
        "src/compiler/loop-peeling.cc",
        "src/compiler/loop-peeling.h",
        "src/compiler/loop-unrolling.cc",
        "src/compiler/loop-unrolling.h",
        "src/compiler/loop-variable-optimizer.cc",
        "src/compiler/loop-variable-optimizer.h",
        "src/compiler/machine-graph.cc",
        "src/compiler/machine-graph.h",
        "src/compiler/machine-graph-verifier.cc",
        "src/compiler/machine-graph-verifier.h",
        "src/compiler/machine-operator.cc",
        "src/compiler/machine-operator.h",
        "src/compiler/machine-operator-reducer.cc",
        "src/compiler/machine-operator-reducer.h",
        "src/compiler/map-inference.cc",
        "src/compiler/map-inference.h",
        "src/compiler/memory-lowering.cc",
        "src/compiler/memory-lowering.h",
        "src/compiler/memory-optimizer.cc",
        "src/compiler/memory-optimizer.h",
        "src/compiler/node.cc",
        "src/compiler/node.h",
        "src/compiler/node-aux-data.h",
        "src/compiler/node-cache.h",
        "src/compiler/node-marker.cc",
        "src/compiler/node-marker.h",
        "src/compiler/node-matchers.cc",
        "src/compiler/node-matchers.h",
        "src/compiler/node-observer.cc",
        "src/compiler/node-observer.h",
        "src/compiler/node-origin-table.cc",
        "src/compiler/node-origin-table.h",
        "src/compiler/node-properties.cc",
        "src/compiler/node-properties.h",
        "src/compiler/opcodes.cc",
        "src/compiler/opcodes.h",
        "src/compiler/operation-typer.cc",
        "src/compiler/operation-typer.h",
        "src/compiler/operator.cc",
        "src/compiler/operator.h",
        "src/compiler/operator-properties.cc",
        "src/compiler/operator-properties.h",
        "src/compiler/osr.cc",
        "src/compiler/osr.h",
        "src/compiler/per-isolate-compiler-cache.h",
        "src/compiler/persistent-map.h",
        "src/compiler/pipeline.cc",
        "src/compiler/pipeline.h",
        "src/compiler/pipeline-statistics.cc",
        "src/compiler/pipeline-statistics.h",
        "src/compiler/processed-feedback.h",
        "src/compiler/property-access-builder.cc",
        "src/compiler/property-access-builder.h",
        "src/compiler/raw-machine-assembler.cc",
        "src/compiler/raw-machine-assembler.h",
        "src/compiler/redundancy-elimination.cc",
        "src/compiler/redundancy-elimination.h",
        "src/compiler/refs-map.cc",
        "src/compiler/refs-map.h",
        "src/compiler/representation-change.cc",
        "src/compiler/representation-change.h",
        "src/compiler/schedule.cc",
        "src/compiler/schedule.h",
        "src/compiler/scheduler.cc",
        "src/compiler/scheduler.h",
        "src/compiler/select-lowering.cc",
        "src/compiler/select-lowering.h",
        "src/compiler/simplified-lowering.cc",
        "src/compiler/simplified-lowering.h",
        "src/compiler/simplified-lowering-verifier.cc",
        "src/compiler/simplified-lowering-verifier.h",
        "src/compiler/simplified-operator.cc",
        "src/compiler/simplified-operator.h",
        "src/compiler/simplified-operator-reducer.cc",
        "src/compiler/simplified-operator-reducer.h",
        "src/compiler/state-values-utils.cc",
        "src/compiler/state-values-utils.h",
        "src/compiler/store-store-elimination.cc",
        "src/compiler/store-store-elimination.h",
        "src/compiler/type-cache.cc",
        "src/compiler/type-cache.h",
        "src/compiler/type-narrowing-reducer.cc",
        "src/compiler/type-narrowing-reducer.h",
        "src/compiler/typed-optimization.cc",
        "src/compiler/typed-optimization.h",
        "src/compiler/typer.cc",
        "src/compiler/typer.h",
        "src/compiler/types.cc",
        "src/compiler/types.h",
        "src/compiler/value-numbering-reducer.cc",
        "src/compiler/value-numbering-reducer.h",
        "src/compiler/verifier.cc",
        "src/compiler/verifier.h",
        "src/compiler/write-barrier-kind.h",
        "src/compiler/zone-stats.cc",
        "src/compiler/zone-stats.h",
    ] + select({
        ":is_v8_enable_webassembly": [
            "src/compiler/int64-lowering.cc",
            "src/compiler/wasm-compiler.cc",
            "src/compiler/wasm-loop-peeling.cc",
            "src/compiler/wasm-escape-analysis.cc",
            "src/compiler/wasm-inlining.cc",
        ],
        "//conditions:default": [],
    }),
)

filegroup(
    name = "v8_initializers_files",
    srcs = [
        "src/builtins/builtins-array-gen.cc",
        "src/builtins/builtins-array-gen.h",
        "src/builtins/builtins-async-function-gen.cc",
        "src/builtins/builtins-async-gen.cc",
        "src/builtins/builtins-async-gen.h",
        "src/builtins/builtins-async-generator-gen.cc",
        "src/builtins/builtins-async-iterator-gen.cc",
        "src/builtins/builtins-bigint-gen.cc",
        "src/builtins/builtins-bigint-gen.h",
        "src/builtins/builtins-call-gen.cc",
        "src/builtins/builtins-call-gen.h",
        "src/builtins/builtins-collections-gen.cc",
        "src/builtins/builtins-collections-gen.h",
        "src/builtins/builtins-constructor-gen.cc",
        "src/builtins/builtins-constructor-gen.h",
        "src/builtins/builtins-constructor.h",
        "src/builtins/builtins-conversion-gen.cc",
        "src/builtins/builtins-data-view-gen.h",
        "src/builtins/builtins-date-gen.cc",
        "src/builtins/builtins-generator-gen.cc",
        "src/builtins/builtins-global-gen.cc",
        "src/builtins/builtins-handler-gen.cc",
        "src/builtins/builtins-ic-gen.cc",
        "src/builtins/builtins-internal-gen.cc",
        "src/builtins/builtins-interpreter-gen.cc",
        "src/builtins/builtins-iterator-gen.cc",
        "src/builtins/builtins-iterator-gen.h",
        "src/builtins/builtins-lazy-gen.cc",
        "src/builtins/builtins-lazy-gen.h",
        "src/builtins/builtins-microtask-queue-gen.cc",
        "src/builtins/builtins-number-gen.cc",
        "src/builtins/builtins-object-gen.cc",
        "src/builtins/builtins-promise-gen.cc",
        "src/builtins/builtins-promise-gen.h",
        "src/builtins/builtins-proxy-gen.cc",
        "src/builtins/builtins-proxy-gen.h",
        "src/builtins/builtins-regexp-gen.cc",
        "src/builtins/builtins-regexp-gen.h",
        "src/builtins/builtins-shadowrealm-gen.cc",
        "src/builtins/builtins-sharedarraybuffer-gen.cc",
        "src/builtins/builtins-string-gen.cc",
        "src/builtins/builtins-string-gen.h",
        "src/builtins/builtins-temporal-gen.cc",
        "src/builtins/builtins-typed-array-gen.cc",
        "src/builtins/builtins-typed-array-gen.h",
        "src/builtins/builtins-utils-gen.h",
        "src/builtins/growable-fixed-array-gen.cc",
        "src/builtins/growable-fixed-array-gen.h",
        "src/builtins/profile-data-reader.cc",
        "src/builtins/profile-data-reader.h",
        "src/builtins/setup-builtins-internal.cc",
        "src/builtins/torque-csa-header-includes.h",
        "src/codegen/code-stub-assembler.cc",
        "src/codegen/code-stub-assembler.h",
        "src/heap/setup-heap-internal.cc",
        "src/ic/accessor-assembler.cc",
        "src/ic/accessor-assembler.h",
        "src/ic/binary-op-assembler.cc",
        "src/ic/binary-op-assembler.h",
        "src/ic/keyed-store-generic.cc",
        "src/ic/keyed-store-generic.h",
        "src/ic/unary-op-assembler.cc",
        "src/ic/unary-op-assembler.h",
        "src/interpreter/interpreter-assembler.cc",
        "src/interpreter/interpreter-assembler.h",
        "src/interpreter/interpreter-generator.cc",
        "src/interpreter/interpreter-generator.h",
        "src/interpreter/interpreter-intrinsics-generator.cc",
        "src/interpreter/interpreter-intrinsics-generator.h",
        "src/numbers/integer-literal-inl.h",
        "src/numbers/integer-literal.h",
    ] + select({
        "@v8//bazel/config:v8_target_ia32": ["src/builtins/ia32/builtins-ia32.cc"],
        "@v8//bazel/config:v8_target_x64": ["src/builtins/x64/builtins-x64.cc"],
        "@v8//bazel/config:v8_target_arm": ["src/builtins/arm/builtins-arm.cc"],
        "@v8//bazel/config:v8_target_arm64": ["src/builtins/arm64/builtins-arm64.cc"],
        "@v8//bazel/config:v8_target_s390x": ["src/builtins/s390/builtins-s390.cc"],
        "@v8//bazel/config:v8_target_riscv64": ["src/builtins/riscv64/builtins-riscv64.cc"],
        "@v8//bazel/config:v8_target_ppc64le": ["src/builtins/ppc/builtins-ppc.cc"],
    }) + select({
        ":is_v8_enable_webassembly": [
            "src/builtins/builtins-wasm-gen.cc",
            "src/builtins/builtins-wasm-gen.h",
        ],
        "//conditions:default": [],
    }),
)

filegroup(
    name = "cppgc_base_files",
    srcs = [
        "src/heap/cppgc/allocation.cc",
        "src/heap/cppgc/caged-heap.h",
        "src/heap/cppgc/compaction-worklists.cc",
        "src/heap/cppgc/compaction-worklists.h",
        "src/heap/cppgc/compactor.cc",
        "src/heap/cppgc/compactor.h",
        "src/heap/cppgc/concurrent-marker.cc",
        "src/heap/cppgc/concurrent-marker.h",
        "src/heap/cppgc/explicit-management.cc",
        "src/heap/cppgc/free-list.cc",
        "src/heap/cppgc/free-list.h",
        "src/heap/cppgc/garbage-collector.h",
        "src/heap/cppgc/gc-info.cc",
        "src/heap/cppgc/gc-info-table.cc",
        "src/heap/cppgc/gc-info-table.h",
        "src/heap/cppgc/gc-invoker.cc",
        "src/heap/cppgc/gc-invoker.h",
        "src/heap/cppgc/globals.h",
        "src/heap/cppgc/heap.cc",
        "src/heap/cppgc/heap.h",
        "src/heap/cppgc/heap-base.cc",
        "src/heap/cppgc/heap-base.h",
        "src/heap/cppgc/heap-consistency.cc",
        "src/heap/cppgc/heap-growing.cc",
        "src/heap/cppgc/heap-growing.h",
        "src/heap/cppgc/heap-object-header.cc",
        "src/heap/cppgc/heap-object-header.h",
        "src/heap/cppgc/heap-page.cc",
        "src/heap/cppgc/heap-page.h",
        "src/heap/cppgc/heap-space.cc",
        "src/heap/cppgc/heap-space.h",
        "src/heap/cppgc/heap-state.cc",
        "src/heap/cppgc/heap-statistics-collector.cc",
        "src/heap/cppgc/heap-statistics-collector.h",
        "src/heap/cppgc/heap-visitor.h",
        "src/heap/cppgc/incremental-marking-schedule.cc",
        "src/heap/cppgc/incremental-marking-schedule.h",
        "src/heap/cppgc/liveness-broker.cc",
        "src/heap/cppgc/liveness-broker.h",
        "src/heap/cppgc/logging.cc",
        "src/heap/cppgc/marker.cc",
        "src/heap/cppgc/marker.h",
        "src/heap/cppgc/marking-state.cc",
        "src/heap/cppgc/marking-state.h",
        "src/heap/cppgc/marking-verifier.cc",
        "src/heap/cppgc/marking-verifier.h",
        "src/heap/cppgc/marking-visitor.cc",
        "src/heap/cppgc/marking-visitor.h",
        "src/heap/cppgc/marking-worklists.cc",
        "src/heap/cppgc/marking-worklists.h",
        "src/heap/cppgc/memory.cc",
        "src/heap/cppgc/memory.h",
        "src/heap/cppgc/metric-recorder.h",
        "src/heap/cppgc/name-trait.cc",
        "src/heap/cppgc/object-allocator.cc",
        "src/heap/cppgc/object-allocator.h",
        "src/heap/cppgc/object-poisoner.h",
        "src/heap/cppgc/object-size-trait.cc",
        "src/heap/cppgc/object-start-bitmap.h",
        "src/heap/cppgc/object-view.h",
        "src/heap/cppgc/page-memory.cc",
        "src/heap/cppgc/page-memory.h",
        "src/heap/cppgc/persistent-node.cc",
        "src/heap/cppgc/platform.cc",
        "src/heap/cppgc/platform.h",
        "src/heap/cppgc/pointer-policies.cc",
        "src/heap/cppgc/prefinalizer-handler.cc",
        "src/heap/cppgc/prefinalizer-handler.h",
        "src/heap/cppgc/process-heap.cc",
        "src/heap/cppgc/process-heap.h",
        "src/heap/cppgc/process-heap-statistics.cc",
        "src/heap/cppgc/process-heap-statistics.h",
        "src/heap/cppgc/raw-heap.cc",
        "src/heap/cppgc/raw-heap.h",
        "src/heap/cppgc/remembered-set.cc",
        "src/heap/cppgc/remembered-set.h",
        "src/heap/cppgc/source-location.cc",
        "src/heap/cppgc/stats-collector.cc",
        "src/heap/cppgc/stats-collector.h",
        "src/heap/cppgc/sweeper.cc",
        "src/heap/cppgc/sweeper.h",
        "src/heap/cppgc/task-handle.h",
        "src/heap/cppgc/trace-event.h",
        "src/heap/cppgc/trace-trait.cc",
        "src/heap/cppgc/unmarker.h",
        "src/heap/cppgc/virtual-memory.cc",
        "src/heap/cppgc/virtual-memory.h",
        "src/heap/cppgc/visitor.cc",
        "src/heap/cppgc/visitor.h",
        "src/heap/cppgc/write-barrier.cc",
        "src/heap/cppgc/write-barrier.h",
    ],
)

filegroup(
    name = "v8_heap_base_files",
    srcs = [
        "src/heap/base/active-system-pages.cc",
        "src/heap/base/active-system-pages.h",
        "src/heap/base/stack.cc",
        "src/heap/base/stack.h",
        "src/heap/base/worklist.cc",
        "src/heap/base/worklist.h",
    ] + select({
        # Note these cannot be v8_target_is_* selects because these contain
        # inline assembly that runs inside the executable. Since these are
        # linked directly into mksnapshot, they must use the actual target cpu.
        "@v8//bazel/config:is_inline_asm_ia32": ["src/heap/base/asm/ia32/push_registers_asm.cc"],
        "@v8//bazel/config:is_inline_asm_x64": ["src/heap/base/asm/x64/push_registers_asm.cc"],
        "@v8//bazel/config:is_inline_asm_arm": ["src/heap/base/asm/arm/push_registers_asm.cc"],
        "@v8//bazel/config:is_inline_asm_arm64": ["src/heap/base/asm/arm64/push_registers_asm.cc"],
        "@v8//bazel/config:is_inline_asm_s390x": ["src/heap/base/asm/s390/push_registers_asm.cc"],
        "@v8//bazel/config:is_inline_asm_riscv64": ["src/heap/base/asm/riscv64/push_registers_asm.cc"],
        "@v8//bazel/config:is_inline_asm_ppc64le": ["src/heap/base/asm/ppc/push_registers_asm.cc"],
        "@v8//bazel/config:is_msvc_asm_ia32": ["src/heap/base/asm/ia32/push_registers_masm.S"],
        "@v8//bazel/config:is_msvc_asm_x64": ["src/heap/base/asm/x64/push_registers_masm.S"],
        "@v8//bazel/config:is_msvc_asm_arm64": ["src/heap/base/asm/arm64/push_registers_masm.S"],
    }),
)

filegroup(
    name = "v8_bigint",
    srcs = [
        "src/bigint/bigint.h",
        "src/bigint/bigint-internal.cc",
        "src/bigint/bigint-internal.h",
        "src/bigint/bitwise.cc",
        "src/bigint/digit-arithmetic.h",
        "src/bigint/div-barrett.cc",
        "src/bigint/div-burnikel.cc",
        "src/bigint/div-helpers.cc",
        "src/bigint/div-helpers.h",
        "src/bigint/div-schoolbook.cc",
        "src/bigint/fromstring.cc",
        "src/bigint/mul-fft.cc",
        "src/bigint/mul-karatsuba.cc",
        "src/bigint/mul-schoolbook.cc",
        "src/bigint/mul-toom.cc",
        "src/bigint/tostring.cc",
        "src/bigint/util.h",
        "src/bigint/vector-arithmetic.cc",
        "src/bigint/vector-arithmetic.h",
    ],
)

filegroup(
    name = "mksnapshot_files",
    srcs = [
        "src/init/setup-isolate-full.cc",
        "src/snapshot/embedded/embedded-empty.cc",
        "src/snapshot/embedded/embedded-file-writer.cc",
        "src/snapshot/embedded/embedded-file-writer.h",
        "src/snapshot/embedded/platform-embedded-file-writer-aix.cc",
        "src/snapshot/embedded/platform-embedded-file-writer-aix.h",
        "src/snapshot/embedded/platform-embedded-file-writer-base.cc",
        "src/snapshot/embedded/platform-embedded-file-writer-base.h",
        "src/snapshot/embedded/platform-embedded-file-writer-generic.cc",
        "src/snapshot/embedded/platform-embedded-file-writer-generic.h",
        "src/snapshot/embedded/platform-embedded-file-writer-mac.cc",
        "src/snapshot/embedded/platform-embedded-file-writer-mac.h",
        "src/snapshot/embedded/platform-embedded-file-writer-win.cc",
        "src/snapshot/embedded/platform-embedded-file-writer-win.h",
        "src/snapshot/mksnapshot.cc",
        "src/snapshot/snapshot-empty.cc",
    ],
)

filegroup(
    name = "v8_inspector_files",
    srcs = [
        "src/inspector/custom-preview.cc",
        "src/inspector/custom-preview.h",
        "src/inspector/injected-script.cc",
        "src/inspector/injected-script.h",
        "src/inspector/inspected-context.cc",
        "src/inspector/inspected-context.h",
        "src/inspector/remote-object-id.cc",
        "src/inspector/remote-object-id.h",
        "src/inspector/search-util.cc",
        "src/inspector/search-util.h",
        "src/inspector/string-16.cc",
        "src/inspector/string-16.h",
        "src/inspector/string-util.cc",
        "src/inspector/string-util.h",
        "src/inspector/test-interface.cc",
        "src/inspector/test-interface.h",
        "src/inspector/v8-console.cc",
        "src/inspector/v8-console.h",
        "src/inspector/v8-console-agent-impl.cc",
        "src/inspector/v8-console-agent-impl.h",
        "src/inspector/v8-console-message.cc",
        "src/inspector/v8-console-message.h",
        "src/inspector/v8-debugger.cc",
        "src/inspector/v8-debugger.h",
        "src/inspector/v8-debugger-agent-impl.cc",
        "src/inspector/v8-debugger-agent-impl.h",
        "src/inspector/v8-debugger-id.cc",
        "src/inspector/v8-debugger-id.h",
        "src/inspector/v8-debugger-script.cc",
        "src/inspector/v8-debugger-script.h",
        "src/inspector/v8-heap-profiler-agent-impl.cc",
        "src/inspector/v8-heap-profiler-agent-impl.h",
        "src/inspector/v8-inspector-impl.cc",
        "src/inspector/v8-inspector-impl.h",
        "src/inspector/v8-inspector-session-impl.cc",
        "src/inspector/v8-inspector-session-impl.h",
        "src/inspector/v8-profiler-agent-impl.cc",
        "src/inspector/v8-profiler-agent-impl.h",
        "src/inspector/v8-regex.cc",
        "src/inspector/v8-regex.h",
        "src/inspector/v8-runtime-agent-impl.cc",
        "src/inspector/v8-runtime-agent-impl.h",
        "src/inspector/v8-schema-agent-impl.cc",
        "src/inspector/v8-schema-agent-impl.h",
        "src/inspector/v8-stack-trace-impl.cc",
        "src/inspector/v8-stack-trace-impl.h",
        "src/inspector/v8-string-conversions.cc",
        "src/inspector/v8-string-conversions.h",
        "src/inspector/v8-value-utils.cc",
        "src/inspector/v8-value-utils.h",
        "src/inspector/value-mirror.cc",
        "src/inspector/value-mirror.h",
        ":crdtp_platform_files",
        ":generated_inspector_files",
    ],
)

filegroup(
    name = "crdtp_platform_files",
    srcs = [
        "third_party/inspector_protocol/crdtp/json_platform.h",
        "third_party/inspector_protocol/crdtp/json_platform_v8.cc",
        ":crdtp_files",
    ],
)

filegroup(
    name = "crdtp_files",
    srcs = [
        "third_party/inspector_protocol/crdtp/cbor.cc",
        "third_party/inspector_protocol/crdtp/cbor.h",
        "third_party/inspector_protocol/crdtp/dispatch.cc",
        "third_party/inspector_protocol/crdtp/dispatch.h",
        "third_party/inspector_protocol/crdtp/error_support.cc",
        "third_party/inspector_protocol/crdtp/error_support.h",
        "third_party/inspector_protocol/crdtp/export.h",
        "third_party/inspector_protocol/crdtp/find_by_first.h",
        "third_party/inspector_protocol/crdtp/frontend_channel.h",
        "third_party/inspector_protocol/crdtp/glue.h",
        "third_party/inspector_protocol/crdtp/json.cc",
        "third_party/inspector_protocol/crdtp/json.h",
        "third_party/inspector_protocol/crdtp/maybe.h",
        "third_party/inspector_protocol/crdtp/parser_handler.h",
        "third_party/inspector_protocol/crdtp/protocol_core.cc",
        "third_party/inspector_protocol/crdtp/protocol_core.h",
        "third_party/inspector_protocol/crdtp/serializable.cc",
        "third_party/inspector_protocol/crdtp/serializable.h",
        "third_party/inspector_protocol/crdtp/span.cc",
        "third_party/inspector_protocol/crdtp/span.h",
        "third_party/inspector_protocol/crdtp/status.cc",
        "third_party/inspector_protocol/crdtp/status.h",
    ],
)

filegroup(
    name = "noicu/snapshot_files",
    srcs = [
        "src/init/setup-isolate-deserialize.cc",
    ] + select({
        "@v8//bazel/config:v8_target_arm": [
            "google3/snapshots/arm/noicu/embedded.S",
            "google3/snapshots/arm/noicu/snapshot.cc",
        ],
        "@v8//bazel/config:v8_target_ia32": [
            "google3/snapshots/ia32/noicu/embedded.S",
            "google3/snapshots/ia32/noicu/snapshot.cc",
        ],
        "//conditions:default": [":noicu/generated_snapshot_files"],
    }),
)

filegroup(
    name = "icu/snapshot_files",
    srcs = [
        "src/init/setup-isolate-deserialize.cc",
    ] + select({
        "@v8//bazel/config:v8_target_arm": [
            "google3/snapshots/arm/icu/embedded.S",
            "google3/snapshots/arm/icu/snapshot.cc",
        ],
        "@v8//bazel/config:v8_target_ia32": [
            "google3/snapshots/ia32/icu/embedded.S",
            "google3/snapshots/ia32/icu/snapshot.cc",
        ],
        "//conditions:default": [":icu/generated_snapshot_files"],
    }),
)

filegroup(
    name = "wee8_files",
    srcs = [
        "src/wasm/c-api.cc",
        "src/wasm/c-api.h",
        "third_party/wasm-api/wasm.h",
        "third_party/wasm-api/wasm.hh",
    ],
)

filegroup(
    name = "kythe_torque_headers",
    srcs = glob(["src/torque/*.h"]),
)

# =================================================
# Generated files
# =================================================

# TODO(victorgomes): Add support to tools/debug_helper,
# which needs class-debug-readers and debug-macros.
v8_torque(
    name = "generated_torque_files",
    args = select({
        ":is_v8_annotate_torque_ir": ["-annotate-ir"],
        "//conditions:default": [],
    }) + select({
        "@v8//bazel/config:v8_target_is_32_bits": ["-m32"],
        "//conditions:default": [],
    }),
    extras = [
        "bit-fields.h",
        "builtin-definitions.h",
        # "class-debug-readers.cc",
        # "class-debug-readers.h",
        "class-forward-declarations.h",
        "class-verifiers.cc",
        "class-verifiers.h",
        "csa-types.h",
        # "debug-macros.cc",
        # "debug-macros.h",
        "enum-verifiers.cc",
        "exported-macros-assembler.cc",
        "exported-macros-assembler.h",
        "factory.cc",
        "factory.inc",
        "instance-types.h",
        "interface-descriptors.inc",
        "objects-body-descriptors-inl.inc",
        "objects-printer.cc",
        "visitor-lists.h",
    ],
    icu_srcs = [":icu/torque_files"],
    noicu_srcs = [":noicu/torque_files"],
)

py_binary(
    name = "code_generator",
    srcs = [
        "third_party/inspector_protocol/code_generator.py",
        "third_party/inspector_protocol/pdl.py",
    ],
    data = [
        "third_party/inspector_protocol/lib/Forward_h.template",
        "third_party/inspector_protocol/lib/Object_cpp.template",
        "third_party/inspector_protocol/lib/Object_h.template",
        "third_party/inspector_protocol/lib/Protocol_cpp.template",
        "third_party/inspector_protocol/lib/ValueConversions_cpp.template",
        "third_party/inspector_protocol/lib/ValueConversions_h.template",
        "third_party/inspector_protocol/lib/Values_cpp.template",
        "third_party/inspector_protocol/lib/Values_h.template",
        "third_party/inspector_protocol/lib/base_string_adapter_cc.template",
        "third_party/inspector_protocol/lib/base_string_adapter_h.template",
        "third_party/inspector_protocol/templates/Exported_h.template",
        "third_party/inspector_protocol/templates/Imported_h.template",
        "third_party/inspector_protocol/templates/TypeBuilder_cpp.template",
        "third_party/inspector_protocol/templates/TypeBuilder_h.template",
    ],
    deps = [
        requirement("jinja2"),
    ],
)

genrule(
    name = "generated_inspector_files",
    srcs = [
        "include/js_protocol.pdl",
        "src/inspector/inspector_protocol_config.json",
    ],
    outs = [
        "include/inspector/Debugger.h",
        "include/inspector/Runtime.h",
        "include/inspector/Schema.h",
        "src/inspector/protocol/Forward.h",
        "src/inspector/protocol/Protocol.cpp",
        "src/inspector/protocol/Protocol.h",
        "src/inspector/protocol/Console.cpp",
        "src/inspector/protocol/Console.h",
        "src/inspector/protocol/Debugger.cpp",
        "src/inspector/protocol/Debugger.h",
        "src/inspector/protocol/HeapProfiler.cpp",
        "src/inspector/protocol/HeapProfiler.h",
        "src/inspector/protocol/Profiler.cpp",
        "src/inspector/protocol/Profiler.h",
        "src/inspector/protocol/Runtime.cpp",
        "src/inspector/protocol/Runtime.h",
        "src/inspector/protocol/Schema.cpp",
        "src/inspector/protocol/Schema.h",
    ],
    local = 1,
    cmd = "$(location :code_generator) --jinja_dir . \
           --inspector_protocol_dir third_party/inspector_protocol \
           --config $(location :src/inspector/inspector_protocol_config.json) \
           --config_value protocol.path=$(location :include/js_protocol.pdl) \
           --output_base $(@D)/src/inspector",
    message = "Generating inspector files",
    tools = [
        ":code_generator",
    ],
)

filegroup(
    name = "v8_common_libshared_files",
    srcs = [
        ":torque_runtime_support_files",
        ":v8_compiler_files",
        ":v8_initializers_files",
        ":v8_libplatform_files",
        ":v8_libsampler_files",
        ":v8_shared_internal_headers",
    ],
)

filegroup(
    name = "d8_files",
    srcs = [
        "src/d8/async-hooks-wrapper.cc",
        "src/d8/async-hooks-wrapper.h",
        "src/d8/d8.cc",
        "src/d8/d8.h",
        "src/d8/d8-console.cc",
        "src/d8/d8-console.h",
        "src/d8/d8-js.cc",
        "src/d8/d8-platforms.cc",
        "src/d8/d8-platforms.h",
        "src/d8/d8-posix.cc",
        "src/d8/d8-test.cc",
    ],
)

genrule(
    name = "generated_bytecode_builtins_list",
    srcs = [],
    outs = ["builtins-generated/bytecodes-builtins-list.h"],
    cmd = "$(location :bytecode_builtins_list_generator) $@",
    cmd_bat = "$(location :bytecode_builtins_list_generator) $@",
    tools = [":bytecode_builtins_list_generator"],
)

genrule(
    name = "generated_regexp_special_case",
    srcs = [],
    outs = ["src/regexp/special-case.cc"],
    cmd = "$(location :regexp_special_case_generator) $@",
    cmd_bat = "$(location :regexp_special_case_generator) $@",
    tools = [":regexp_special_case_generator"],
)

v8_mksnapshot(
    name = "generated_snapshot_files",
    args = select({
        ":is_v8_enable_verify_heap": ["--verify-heap"],
        "//conditions:default": [],
    }) + select({
        ":is_v8_enable_fast_mksnapshot": [
            "--no-turbo-rewrite-far-jumps",
            "--no-turbo-verify-allocation",
        ],
        "//conditions:default": [],
    }) + select({
        ":is_v8_enable_snapshot_code_comments": ["--code-comments"],
        "//conditions:default": [],
    }) + select({
        ":is_v8_enable_snapshot_native_code_counters": [
            "--native-code-counters",
        ],
        "//conditions:default": ["--no-native-code-counters"],
    }),
)

# =================================================
# Libraries rules
# =================================================

# NOTE: This allow headers to be accessed without the icu/noicu prefixes.
cc_library(
    name = "icu/generated_torque_headers",
    hdrs = [":icu/generated_torque_files"],
    strip_include_prefix = "icu",
)

cc_library(
    name = "noicu/generated_torque_headers",
    hdrs = [":noicu/generated_torque_files"],
    strip_include_prefix = "noicu",
)

v8_library(
    name = "v8_libbase",
    srcs = [
        ":v8_libbase_files",
        ":v8_shared_internal_headers",
    ],
)

cc_library(
    name = "torque_base_headers",
    hdrs = [
        "src/torque/kythe-data.h",
        "src/torque/torque-compiler.h",
    ],
    include_prefix = "third_party/v8",
    includes = ["."],
)

cc_library(
    name = "kythe_torque_base",
    srcs = [
        ":torque_base_files",
    ],
    copts = select({
        "@v8//bazel/config:is_posix": ["-fexceptions"],
        "//conditions:default": [],
    }),
    features = ["-use_header_modules"],
    deps = [
        ":torque_base_headers",
        ":v8_libbase",
    ],
)

v8_library(
    name = "v8_libshared",
    srcs = [
        ":v8_base_without_compiler_files",
        ":v8_common_libshared_files",
    ],
    icu_deps = [
        ":icu/generated_torque_headers",
        "//external:icu",
    ],
    icu_srcs = [
        ":generated_regexp_special_case",
        ":icu/generated_torque_files",
        ":icu/v8_base_without_compiler_files",
    ],
    noicu_deps = [
        ":noicu/generated_torque_headers",
    ],
    noicu_srcs = [
        ":noicu/generated_torque_files",
    ],
    deps = [
        ":v8_libbase",
        "//external:base_trace_event_common",
        "//external:zlib",
        "//external:zlib_compression_utils",
    ],
)

v8_library(
    name = "v8",
    srcs = [":v8_inspector_files"],
    hdrs = [":public_header_files"],
    icu_deps = [":icu/v8_libshared"],
    icu_srcs = [":icu/snapshot_files"],
    noicu_deps = [":noicu/v8_libshared"],
    noicu_srcs = [":noicu/snapshot_files"],
    visibility = ["//visibility:public"],
)

# TODO(victorgomes): Check if v8_enable_webassembly is true.
v8_library(
    name = "wee8",
    srcs = [":wee8_files"],
    hdrs = [":public_wasm_c_api_header_files"],
    strip_include_prefix = "third_party",
    visibility = ["//visibility:public"],
    deps = [":noicu/v8"],
)

alias(
    name = "core_lib_noicu",
    actual = "noicu/v8",
)

alias(
    name = "core_lib_icu",
    actual = "icu/v8",
)

# =================================================
# Binary rules
# =================================================

v8_binary(
    name = "bytecode_builtins_list_generator",
    srcs = [
        "src/builtins/generate-bytecodes-builtins-list.cc",
        "src/interpreter/bytecode-operands.cc",
        "src/interpreter/bytecode-operands.h",
        "src/interpreter/bytecode-traits.h",
        "src/interpreter/bytecodes.cc",
        "src/interpreter/bytecodes.h",
    ],
    deps = ["v8_libbase"],
)

v8_binary(
    name = "regexp_special_case_generator",
    srcs = [
        "src/regexp/gen-regexp-special-case.cc",
        "src/regexp/special-case.h",
        ":v8_libbase_files",
        ":v8_shared_internal_headers",
    ],
    defines = [
        "V8_INTL_SUPPORT",
        "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
        # src/regexp/regexp-compiler-tonode.cc uses an unsafe ICU method and
        # access a character implicitly.
        "UNISTR_FROM_CHAR_EXPLICIT=",
    ],
    deps = [
        "//external:icu",
    ],
)

v8_binary(
    name = "torque",
    srcs = [
        "src/torque/torque.cc",
        ":torque_base_files",
    ],
    copts = select({
        "@v8//bazel/config:is_posix": ["-fexceptions"],
        "//conditions:default": [],
    }),
    features = ["-use_header_modules"],
    linkopts = select({
        "@v8//bazel/config:is_android": ["-llog"],
        "//conditions:default": [],
    }),
    deps = ["v8_libbase"],
)

v8_binary(
    name = "mksnapshot",
    srcs = [":mksnapshot_files"],
    icu_deps = [":icu/v8_libshared"],
    linkopts = select({
        "@v8//bazel/config:is_android": ["-llog"],
        "//conditions:default": [],
    }),
    noicu_deps = [":v8_libshared_noicu"],
)

v8_binary(
    name = "d8",
    srcs = [":d8_files"],
    icu_deps = [":icu/v8"],
    noicu_deps = [":noicu/v8"],
)

# This target forces torque to be compiled without pointer compression.
v8_binary_non_pointer_compression(
    name = "torque_non_pointer_compression",
    binary = "torque",
)

alias(
    name = "v8ci",
    actual = "icu/v8",
)

# =================================================
# Tests
# =================================================

v8_build_config(
    name = "v8_build_config",
)

# Runs mjsunit with d8.
py_test(
    name = "noicu/mjsunit",
    size = "medium",
    srcs = [
        "test/mjsunit/testcfg.py",
        "tools/predictable_wrapper.py",
        "tools/run-tests.py",
    ] + glob(["tools/testrunner/**/*.py"]),
    args = [
        "--no-sorting",
        "--nopresubmit",
        "--variant=google3_noicu",
        "--outdir noicu",
        "--verbose",
        "mjsunit",
    ],
    data = [
        "//testing/pybase",
        ":noicu/v8_build_config",
        ":noicu/d8",
        "test",
    ] + glob(["test/**"]) + glob(["tools/**/*.js"]) + glob(["tools/**/*.mjs"]),
    main = "tools/run-tests.py",
    python_version = "PY3",
    tags = [
        # Disable sanitizers, as they don't work in general in V8.
        "nosan",
    ],
)

py_test(
    name = "icu/mjsunit",
    size = "medium",
    srcs = [
        "test/mjsunit/testcfg.py",
        "tools/predictable_wrapper.py",
        "tools/run-tests.py",
    ] + glob(["tools/testrunner/**/*.py"]),
    args = [
        "--no-sorting",
        "--nopresubmit",
        "--variant=google3_icu",
        "--outdir icu",
        "--verbose",
        "mjsunit",
    ],
    data = [
        "//testing/pybase",
        ":icu/v8_build_config",
        ":icu/d8",
        "test",
    ] + glob(["test/**"]) + glob(["tools/**/*.js"]) + glob(["tools/**/*.mjs"]),
    main = "tools/run-tests.py",
    python_version = "PY3",
    tags = [
        # Disable sanitizers, as they don't work in general in V8.
        "nosan",
    ],
)