# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/android/config.gni")
import("//build/config/arm.gni")
import("//build/config/dcheck_always_on.gni")
import("//build/config/host_byteorder.gni")
import("//build/config/jumbo.gni")
import("//build/config/mips.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build_overrides/build.gni")

if (is_android) {
  import("//build/config/android/rules.gni")
}

import("gni/snapshot_toolchain.gni")
import("gni/v8.gni")

# Specifies if the target build is a simulator build. Comparing target cpu
# with v8 target cpu to not affect simulator builds for making cross-compile
# snapshots.
is_target_simulator = (target_cpu != v8_target_cpu && !v8_multi_arch_build) ||
                      (current_cpu != v8_current_cpu && v8_multi_arch_build)

# For faster Windows builds. See https://crbug.com/v8/8475.
emit_builtins_as_inline_asm = is_win && is_clang

declare_args() {
  # Print to stdout on Android.
  v8_android_log_stdout = false

  # Dynamically set an additional dependency from v8/custom_deps.
  v8_custom_deps = ""

  # Turns on all V8 debug features. Enables running V8 in a pseudo debug mode
  # within a release Chrome.
  v8_enable_debugging_features = is_debug

  # Sets -DV8_ENABLE_FUTURE.
  v8_enable_future = false

  # Lite mode disables a number of performance optimizations to reduce memory
  # at the cost of performance.
  # Sets --DV8_LITE_MODE.
  v8_enable_lite_mode = false

  # Sets -DVERIFY_HEAP.
  v8_enable_verify_heap = ""

  # Sets -DVERIFY_PREDICTABLE
  v8_enable_verify_predictable = false

  # Enable compiler warnings when using V8_DEPRECATED apis.
  v8_deprecation_warnings = true

  # Enable compiler warnings when using V8_DEPRECATE_SOON apis.
  v8_imminent_deprecation_warnings = true

  # Embeds the given script into the snapshot.
  v8_embed_script = ""

  # Allows the embedder to add a custom suffix to the version string.
  v8_embedder_string = ""

  # Sets -dENABLE_DISASSEMBLER.
  v8_enable_disassembler = ""

  # Sets the number of internal fields on promise objects.
  v8_promise_internal_field_count = 0

  # Sets -dENABLE_GDB_JIT_INTERFACE.
  v8_enable_gdbjit = ""

  # Sets -dENABLE_VTUNE_JIT_INTERFACE.
  v8_enable_vtunejit = false

  # Sets -dENABLE_HANDLE_ZAPPING.
  v8_enable_handle_zapping = is_debug

  # Enable slow dchecks.
  v8_enable_slow_dchecks = false

  # Enable fast mksnapshot runs.
  v8_enable_fast_mksnapshot = false

  # Optimize code for Torque executable, even during a debug build.
  v8_enable_fast_torque = ""

  # Enable embedded builtins.
  v8_enable_embedded_builtins = true

  # Enable the registration of unwinding info for Windows/x64.
  # Cobalt compiles with UWP winrt library that does not support unwinding.
  v8_win64_unwinding_info = false

  # Enable code comments for builtins in the snapshot (impacts performance).
  v8_enable_snapshot_code_comments = false

  # Enable native counters from the snapshot (impacts performance, sets
  # -dV8_SNAPSHOT_NATIVE_CODE_COUNTERS).
  # This option will generate extra code in the snapshot to increment counters,
  # as per the --native-code-counters flag.
  v8_enable_snapshot_native_code_counters = ""

  # Enable code-generation-time checking of types in the CodeStubAssembler.
  v8_enable_verify_csa = false

  # Enable pointer compression (sets -dV8_COMPRESS_POINTERS).
  v8_enable_pointer_compression = false
  v8_enable_31bit_smis_on_64bit_arch = false

  # Sets -dOBJECT_PRINT.
  v8_enable_object_print = ""

  # Sets -dV8_TRACE_MAPS.
  v8_enable_trace_maps = ""

  # Sets -dV8_ENABLE_CHECKS.
  v8_enable_v8_checks = ""

  # Sets -dV8_TRACE_IGNITION.
  v8_enable_trace_ignition = false

  # Sets -dV8_TRACE_FEEDBACK_UPDATES.
  v8_enable_trace_feedback_updates = false

  # Sets -dV8_CONCURRENT_MARKING
  v8_enable_concurrent_marking = true

  # Enables various testing features.
  v8_enable_test_features = ""

  # With post mortem support enabled, metadata is embedded into libv8 that
  # describes various parameters of the VM for use by debuggers. See
  # tools/gen-postmortem-metadata.py for details.
  v8_postmortem_support = false

  # Use Siphash as added protection against hash flooding attacks.
  v8_use_siphash = false

  # Switches off inlining in V8.
  v8_no_inline = false

  # Override OS page size when generating snapshot
  v8_os_page_size = "0"

  # Similar to vfp but on MIPS.
  v8_can_use_fpu_instructions = true

  # Similar to the ARM hard float ABI but on MIPS.
  v8_use_mips_abi_hardfloat = true

  # Controls the threshold for on-heap/off-heap Typed Arrays.
  v8_typed_array_max_size_in_heap = 64

  # List of extra files to snapshot. They will be snapshotted in order so
  # if files export symbols used by later files, they should go first.
  #
  # This default is used by cctests. Projects using V8 will want to override.
  v8_extra_library_files = [ "//test/cctest/test-extra.js" ]

  v8_enable_gdbjit =
      ((v8_current_cpu == "x86" || v8_current_cpu == "x64") &&
       (is_linux || is_mac)) || (v8_current_cpu == "ppc64" && is_linux)

  # Temporary flag to allow embedders to update their microtasks scopes
  # while rolling in a new version of V8.
  v8_check_microtasks_scopes_consistency = ""

  # Enable mitigations for executing untrusted code.
  # Disabled by default on ia32 due to conflicting requirements with embedded
  # builtins. Enabled by default on Android since it doesn't support
  # site-isolation in Chrome and on simulator builds which test code generation
  # on these platforms.
  v8_untrusted_code_mitigations =
      v8_current_cpu != "x86" && (is_android || is_target_simulator)

  # Enable minor mark compact.
  v8_enable_minor_mc = true

  # Check that each header can be included in isolation (requires also
  # setting the "check_v8_header_includes" gclient variable to run a
  # specific hook).
  v8_check_header_includes = false

  # Enable sharing read-only space across isolates.
  # Sets -DV8_SHARED_RO_HEAP.
  v8_enable_shared_ro_heap = ""
}

# We reuse the snapshot toolchain for building torque and other generators to
# avoid building v8_libbase on the host more than once. On mips with big endian,
# the snapshot toolchain is the target toolchain and, hence, can't be used.
v8_generator_toolchain = v8_snapshot_toolchain
if (host_cpu == "x64" &&
    (v8_current_cpu == "mips" || v8_current_cpu == "mips64")) {
  v8_generator_toolchain = "//build/toolchain/linux:clang_x64"
}

# Derived defaults.
if (v8_enable_verify_heap == "") {
  v8_enable_verify_heap = v8_enable_debugging_features
}
if (v8_enable_object_print == "") {
  v8_enable_object_print = v8_enable_debugging_features
}
if (v8_enable_disassembler == "") {
  v8_enable_disassembler = v8_enable_debugging_features
}
if (v8_enable_trace_maps == "") {
  v8_enable_trace_maps = v8_enable_debugging_features
}
if (v8_enable_test_features == "") {
  v8_enable_test_features = v8_enable_debugging_features || dcheck_always_on
}
if (v8_enable_v8_checks == "") {
  v8_enable_v8_checks = v8_enable_debugging_features
}
if (v8_check_microtasks_scopes_consistency == "") {
  v8_check_microtasks_scopes_consistency =
      v8_enable_debugging_features || dcheck_always_on
}
if (v8_enable_snapshot_native_code_counters == "") {
  v8_enable_snapshot_native_code_counters = v8_enable_debugging_features
}
if (v8_enable_shared_ro_heap == "") {
  v8_enable_shared_ro_heap = !v8_enable_pointer_compression && v8_use_snapshot
}
if (v8_enable_fast_torque == "") {
  v8_enable_fast_torque = v8_enable_fast_mksnapshot
}

assert(v8_current_cpu != "x86" || !v8_untrusted_code_mitigations,
       "Untrusted code mitigations are unsupported on ia32")

assert(!v8_enable_lite_mode || v8_enable_embedded_builtins,
       "Lite mode requires embedded builtins")
assert(!v8_enable_lite_mode || v8_use_snapshot,
       "Lite mode requires a snapshot build")

assert(
    !v8_enable_pointer_compression || !v8_enable_shared_ro_heap,
    "Pointer compression is not supported with shared read-only heap enabled")
assert(v8_use_snapshot || !v8_enable_shared_ro_heap,
       "Shared read-only heap requires snapshot")

v8_random_seed = "314159265"
v8_toolset_for_shell = "host"

###############################################################################
# Configurations
#

config("internal_config_base") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  include_dirs = [
    ".",
    "$target_gen_dir",
  ]
}

config("internal_config") {
  defines = []
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  configs = [
    "//build/config/compiler:wexit_time_destructors",
    ":internal_config_base",
    ":v8_header_features",
  ]

  if (is_component_build) {
    defines += [ "BUILDING_V8_SHARED" ]
  }
}

# This config should be applied to code using the libplatform.
config("libplatform_config") {
  include_dirs = [ "include" ]
  if (is_component_build) {
    defines = [ "USING_V8_PLATFORM_SHARED" ]
  }
}

# This config should be applied to code using the libbase.
config("libbase_config") {
  if (is_component_build) {
    defines = [ "USING_V8_BASE_SHARED" ]
  }
  libs = []
  if (is_android && current_toolchain != host_toolchain) {
    libs += [ "log" ]
  }
}

# This config should be applied to code using the libsampler.
config("libsampler_config") {
  include_dirs = [ "include" ]
}

# This config should only be applied to code using V8 and not any V8 code
# itself.
config("external_config") {
  defines = []
  configs = [ ":v8_header_features" ]
  if (is_component_build) {
    defines += [ "USING_V8_SHARED" ]
  }
  include_dirs = [
    "include",
    "$target_gen_dir/include",
  ]
}

# This config should only be applied to code that needs to be explicitly
# aware of whether we are using startup data or not.
config("external_startup_data") {
  if (v8_use_external_startup_data) {
    defines = [ "V8_USE_EXTERNAL_STARTUP_DATA" ]
  }
}

# Put defines that are used in public headers here; public headers are
# defined in "v8_headers" and are included by embedders of V8.
config("v8_header_features") {
  visibility = [ ":*" ]

  defines = []

  if (v8_enable_v8_checks) {
    defines += [ "V8_ENABLE_CHECKS" ]  # Used in "include/v8.h".
  }
  if (v8_enable_pointer_compression) {
    defines += [ "V8_COMPRESS_POINTERS" ]
  }
  if (v8_enable_pointer_compression || v8_enable_31bit_smis_on_64bit_arch) {
    defines += [ "V8_31BIT_SMIS_ON_64BIT_ARCH" ]
  }
  if (v8_deprecation_warnings) {
    defines += [ "V8_DEPRECATION_WARNINGS" ]
  }
  if (v8_imminent_deprecation_warnings) {
    defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ]
  }
}

# Put defines here that are only used in our internal files and NEVER in
# external headers that embedders (such as chromium and node) might include.
config("features") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  defines = []

  configs = [ ":v8_header_features" ]

  if (v8_embedder_string != "") {
    defines += [ "V8_EMBEDDER_STRING=\"$v8_embedder_string\"" ]
  }
  if (v8_enable_disassembler) {
    defines += [ "ENABLE_DISASSEMBLER" ]
  }
  if (v8_promise_internal_field_count != 0) {
    defines +=
        [ "V8_PROMISE_INTERNAL_FIELD_COUNT=${v8_promise_internal_field_count}" ]
  }
  defines +=
      [ "V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=${v8_typed_array_max_size_in_heap}" ]
  if (v8_enable_raw_heap_snapshots) {
    defines += [ "V8_ENABLE_RAW_HEAP_SNAPSHOTS" ]
  }
  if (v8_enable_future) {
    defines += [ "V8_ENABLE_FUTURE" ]
  }
  if (v8_enable_lite_mode) {
    defines += [ "V8_LITE_MODE" ]

    # TODO(v8:7777): Remove the define once the --jitless runtime flag does
    # everything we need.
    defines += [ "V8_JITLESS_MODE" ]
  }
  if (v8_enable_gdbjit) {
    defines += [ "ENABLE_GDB_JIT_INTERFACE" ]
  }
  if (v8_enable_vtunejit) {
    defines += [ "ENABLE_VTUNE_JIT_INTERFACE" ]
  }
  if (v8_enable_minor_mc) {
    defines += [ "ENABLE_MINOR_MC" ]
  }
  if (v8_enable_object_print) {
    defines += [ "OBJECT_PRINT" ]
  }
  if (v8_enable_verify_heap) {
    defines += [ "VERIFY_HEAP" ]
  }
  if (v8_enable_verify_predictable) {
    defines += [ "VERIFY_PREDICTABLE" ]
  }
  if (v8_enable_trace_maps) {
    defines += [ "V8_TRACE_MAPS" ]
  }
  if (v8_enable_trace_ignition) {
    defines += [ "V8_TRACE_IGNITION" ]
  }
  if (v8_enable_trace_feedback_updates) {
    defines += [ "V8_TRACE_FEEDBACK_UPDATES" ]
  }
  if (v8_enable_test_features) {
    defines += [ "V8_ENABLE_ALLOCATION_TIMEOUT" ]
    defines += [ "V8_ENABLE_FORCE_SLOW_PATH" ]
    defines += [ "V8_ENABLE_DOUBLE_CONST_STORE_CHECK" ]
  }
  if (v8_enable_i18n_support) {
    defines += [ "V8_INTL_SUPPORT" ]
  }
  if (v8_enable_handle_zapping) {
    defines += [ "ENABLE_HANDLE_ZAPPING" ]
  }
  if (v8_use_snapshot) {
    defines += [ "V8_USE_SNAPSHOT" ]
    if (v8_enable_snapshot_native_code_counters) {
      defines += [ "V8_SNAPSHOT_NATIVE_CODE_COUNTERS" ]
    }
  }
  if (v8_use_external_startup_data) {
    defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ]
  }
  if (v8_enable_concurrent_marking) {
    defines += [ "V8_CONCURRENT_MARKING" ]
  }
  if (v8_check_microtasks_scopes_consistency) {
    defines += [ "V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY" ]
  }
  if (v8_enable_embedded_builtins) {
    defines += [ "V8_EMBEDDED_BUILTINS" ]
  }
  if (v8_use_multi_snapshots) {
    defines += [ "V8_MULTI_SNAPSHOTS" ]
  }
  if (v8_use_siphash) {
    defines += [ "V8_USE_SIPHASH" ]
  }
  if (v8_enable_shared_ro_heap) {
    defines += [ "V8_SHARED_RO_HEAP" ]
  }
  if (v8_use_perfetto) {
    defines += [ "V8_USE_PERFETTO" ]
  }
  if (v8_win64_unwinding_info) {
    defines += [ "V8_WIN64_UNWINDING_INFO" ]
  }
}

config("toolchain") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  defines = []
  cflags = []
  ldflags = []

  if (v8_current_cpu == "arm") {
    defines += [ "V8_TARGET_ARCH_ARM" ]
    if (arm_version >= 7) {
      defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ]
    }
    if (arm_fpu == "vfpv3-d16") {
      defines += [ "CAN_USE_VFP3_INSTRUCTIONS" ]
    } else if (arm_fpu == "vfpv3") {
      defines += [
        "CAN_USE_VFP3_INSTRUCTIONS",
        "CAN_USE_VFP32DREGS",
      ]
    } else if (arm_fpu == "neon") {
      defines += [
        "CAN_USE_VFP3_INSTRUCTIONS",
        "CAN_USE_VFP32DREGS",
        "CAN_USE_NEON",
      ]
    }

    # TODO(jochen): Add support for arm_test_noprobe.

    if (current_cpu != "arm") {
      # These defines ares used for the ARM simulator.
      if (arm_float_abi == "hard") {
        defines += [ "USE_EABI_HARDFLOAT=1" ]
      } else if (arm_float_abi == "softfp") {
        defines += [ "USE_EABI_HARDFLOAT=0" ]
      }
    }
  }
  if (v8_current_cpu == "arm64") {
    defines += [ "V8_TARGET_ARCH_ARM64" ]
  }

  # Mips64el/mipsel simulators.
  if (is_target_simulator &&
      (v8_current_cpu == "mipsel" || v8_current_cpu == "mips64el")) {
    defines += [ "_MIPS_TARGET_SIMULATOR" ]
  }

  if (v8_current_cpu == "mipsel" || v8_current_cpu == "mips") {
    defines += [ "V8_TARGET_ARCH_MIPS" ]
    if (v8_can_use_fpu_instructions) {
      defines += [ "CAN_USE_FPU_INSTRUCTIONS" ]
    }
    if (v8_use_mips_abi_hardfloat) {
      defines += [
        "__mips_hard_float=1",
        "CAN_USE_FPU_INSTRUCTIONS",
      ]
    } else {
      defines += [ "__mips_soft_float=1" ]
    }
    if (mips_arch_variant == "r6") {
      defines += [
        "_MIPS_ARCH_MIPS32R6",
        "FPU_MODE_FP64",
      ]
      if (mips_use_msa) {
        defines += [ "_MIPS_MSA" ]
      }
    } else if (mips_arch_variant == "r2") {
      defines += [ "_MIPS_ARCH_MIPS32R2" ]
      if (mips_fpu_mode == "fp64") {
        defines += [ "FPU_MODE_FP64" ]
      } else if (mips_fpu_mode == "fpxx") {
        defines += [ "FPU_MODE_FPXX" ]
      } else if (mips_fpu_mode == "fp32") {
        defines += [ "FPU_MODE_FP32" ]
      }
    } else if (mips_arch_variant == "r1") {
      defines += [ "FPU_MODE_FP32" ]
    }

    # TODO(jochen): Add support for mips_arch_variant rx and loongson.
  }

  if (v8_current_cpu == "mips64el" || v8_current_cpu == "mips64") {
    defines += [ "V8_TARGET_ARCH_MIPS64" ]
    if (v8_can_use_fpu_instructions) {
      defines += [ "CAN_USE_FPU_INSTRUCTIONS" ]
    }

    if (host_byteorder == "little") {
      defines += [ "V8_TARGET_ARCH_MIPS64_LE" ]
    } else if (host_byteorder == "big") {
      defines += [ "V8_TARGET_ARCH_MIPS64_BE" ]
    }
    if (v8_use_mips_abi_hardfloat) {
      defines += [
        "__mips_hard_float=1",
        "CAN_USE_FPU_INSTRUCTIONS",
      ]
    } else {
      defines += [ "__mips_soft_float=1" ]
    }
    if (mips_arch_variant == "r6") {
      defines += [ "_MIPS_ARCH_MIPS64R6" ]
      if (mips_use_msa) {
        defines += [ "_MIPS_MSA" ]
      }
    } else if (mips_arch_variant == "r2") {
      defines += [ "_MIPS_ARCH_MIPS64R2" ]
    }
  }
  if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
    defines += [ "V8_TARGET_ARCH_S390" ]
    if (v8_current_cpu == "s390x") {
      defines += [ "V8_TARGET_ARCH_S390X" ]
    }
    if (host_byteorder == "little") {
      defines += [ "V8_TARGET_ARCH_S390_LE_SIM" ]
    } else {
      cflags += [ "-march=z196" ]
    }
  }
  if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
    defines += [ "V8_TARGET_ARCH_PPC" ]
    if (v8_current_cpu == "ppc64") {
      defines += [ "V8_TARGET_ARCH_PPC64" ]
    }
    if (host_byteorder == "little") {
      defines += [ "V8_TARGET_ARCH_PPC_LE" ]
    } else if (host_byteorder == "big") {
      defines += [ "V8_TARGET_ARCH_PPC_BE" ]
      if (current_os == "aix") {
        cflags += [
          # Work around AIX ceil, trunc and round oddities.
          "-mcpu=power5+",
          "-mfprnd",

          # Work around AIX assembler popcntb bug.
          "-mno-popcntb",
        ]
      }
    }
  }

  if (v8_current_cpu == "x86") {
    defines += [ "V8_TARGET_ARCH_IA32" ]
    if (is_win) {
      # Ensure no surprising artifacts from 80bit double math with x86.
      cflags += [ "/arch:SSE2" ]
    }
  }
  if (v8_current_cpu == "x64") {
    defines += [ "V8_TARGET_ARCH_X64" ]
    if (is_win) {
      # Increase the initial stack size. The default is 1MB, this is 2MB. This
      # applies only to executables and shared libraries produced by V8 since
      # ldflags are not pushed to dependants.
      ldflags += [ "/STACK:2097152" ]
    }
  }
  if (is_android && v8_android_log_stdout) {
    defines += [ "V8_ANDROID_LOG_STDOUT" ]
  }

  # TODO(jochen): Support v8_enable_prof on Windows.
  # TODO(jochen): Add support for compiling with simulators.

  if (v8_enable_debugging_features) {
    if (is_linux && v8_enable_backtrace) {
      ldflags += [ "-rdynamic" ]
    }

    defines += [ "DEBUG" ]
    if (v8_enable_slow_dchecks) {
      defines += [ "ENABLE_SLOW_DCHECKS" ]
    }
  } else if (dcheck_always_on) {
    defines += [ "DEBUG" ]
  }

  if (v8_enable_verify_csa) {
    defines += [ "ENABLE_VERIFY_CSA" ]
  }

  if (!v8_untrusted_code_mitigations) {
    defines += [ "DISABLE_UNTRUSTED_CODE_MITIGATIONS" ]
  }

  if (v8_no_inline) {
    if (is_win) {
      cflags += [ "/Ob0" ]
    } else {
      cflags += [
        "-fno-inline-functions",
        "-fno-inline",
      ]
    }
  }

  if (is_clang) {
    cflags += [ "-Wmissing-field-initializers" ]

    if (v8_current_cpu != "mips" && v8_current_cpu != "mipsel") {
      # We exclude MIPS because the IsMipsArchVariant macro causes trouble.
      cflags += [ "-Wunreachable-code" ]
    }

    if (v8_current_cpu == "x64" || v8_current_cpu == "arm64" ||
        v8_current_cpu == "mips64el") {
      cflags += [ "-Wshorten-64-to-32" ]
    }
  }

  if (is_win) {
    cflags += [
      "/wd4245",  # Conversion with signed/unsigned mismatch.
      "/wd4267",  # Conversion with possible loss of data.
      "/wd4324",  # Padding structure due to alignment.
      "/wd4701",  # Potentially uninitialized local variable.
      "/wd4702",  # Unreachable code.
      "/wd4703",  # Potentially uninitialized local pointer variable.
      "/wd4709",  # Comma operator within array index expr (bugged).
      "/wd4714",  # Function marked forceinline not inlined.

      # MSVC assumes that control can get past an exhaustive switch and then
      # warns if there's no return there (see https://crbug.com/v8/7658)
      "/wd4715",  # Not all control paths return a value.

      "/wd4718",  # Recursive call has no side-effect.
      "/wd4723",  # https://crbug.com/v8/7771
      "/wd4724",  # https://crbug.com/v8/7771
      "/wd4800",  # Forcing value to bool.
    ]
  }

  if (!is_clang && !is_win) {
    cflags += [
      # Disable gcc warnings for optimizations based on the assumption that
      # signed overflow does not occur. Generates false positives (see
      # http://crbug.com/v8/6341).
      "-Wno-strict-overflow",

      # GCC assumes that control can get past an exhaustive switch and then
      # warns if there's no return there (see https://crbug.com/v8/7658).
      "-Wno-return-type",
    ]
  }

  # Chromium uses a hand-picked subset of UBSan coverage. We want everything.
  if (is_ubsan) {
    cflags += [ "-fsanitize=undefined" ]
  }
}

# For code that is hot during mksnapshot. In fast-mksnapshot builds, we
# optimize some files even in debug builds to speed up mksnapshot times.
config("always_optimize") {
  configs = [ ":internal_config" ]

  # TODO(crbug.com/621335) Rework this so that we don't have the confusion
  # between "optimize_speed" and "optimize_max".
  if (((is_posix && !is_android) || is_fuchsia) && !using_sanitizer) {
    configs += [ "//build/config/compiler:optimize_speed" ]
  } else {
    configs += [ "//build/config/compiler:optimize_max" ]
  }
}

# Configs for code coverage with gcov. Separate configs for cflags and ldflags
# to selectively influde cflags in non-test targets only.
config("v8_gcov_coverage_cflags") {
  cflags = [
    "-fprofile-arcs",
    "-ftest-coverage",
  ]
}

config("v8_gcov_coverage_ldflags") {
  ldflags = [ "-fprofile-arcs" ]
}

###############################################################################
# Actions
#

# Only for Windows clang builds. Converts the embedded.S file produced by
# mksnapshot into an embedded.cc file with corresponding inline assembly.
template("asm_to_inline_asm") {
  name = target_name
  if (name == "default") {
    suffix = ""
  } else {
    suffix = "_$name"
  }

  action("asm_to_inline_asm_" + name) {
    visibility = [ ":*" ]  # Only targets in this file can depend on this.

    assert(emit_builtins_as_inline_asm)

    script = "tools/snapshot/asm_to_inline_asm.py"
    deps = [
      ":run_mksnapshot_" + name,
    ]
    sources = [
      "$target_gen_dir/embedded${suffix}.S",
    ]
    outputs = [
      "$target_gen_dir/embedded${suffix}.cc",
    ]
    args = invoker.args
    args += [
      rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir),
      rebase_path("$target_gen_dir/embedded${suffix}.cc", root_build_dir),
    ]
  }
}

action("js2c_extras") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  script = "tools/js2c.py"

  sources = v8_extra_library_files

  outputs = [
    "$target_gen_dir/extras-libraries.cc",
  ]

  args = [
           rebase_path("$target_gen_dir/extras-libraries.cc", root_build_dir),
           "EXTRAS",
         ] + rebase_path(sources, root_build_dir)

  if (v8_use_external_startup_data) {
    outputs += [ "$target_gen_dir/libraries_extras.bin" ]
    args += [
      "--startup_blob",
      rebase_path("$target_gen_dir/libraries_extras.bin", root_build_dir),
    ]
  }
}

if (is_android && enable_java_templates) {
  android_assets("v8_external_startup_data_assets") {
    if (v8_use_external_startup_data) {
      # We don't support side-by-side snapshots on Android within Chromium.
      assert(!v8_use_multi_snapshots)
      deps = [
        "//v8",
      ]
      sources = [
        "$root_out_dir/natives_blob.bin",
      ]
      renaming_sources = [ "$root_out_dir/snapshot_blob.bin" ]
      if (current_cpu == "arm" || current_cpu == "x86" ||
          current_cpu == "mipsel") {
        renaming_destinations = [ "snapshot_blob_32.bin" ]
      } else {
        renaming_destinations = [ "snapshot_blob_64.bin" ]
      }
      disable_compression = true
    }
  }
}

if (v8_use_external_startup_data) {
  action("natives_blob") {
    visibility = [ ":*" ]  # Only targets in this file can depend on this.

    deps = [
      ":js2c_extras",
    ]

    # NOSORT
    sources = [
      "$target_gen_dir/libraries_extras.bin",
    ]

    outputs = [
      "$root_out_dir/natives_blob.bin",
    ]

    data = [
      "$root_out_dir/natives_blob.bin",
    ]

    script = "tools/concatenate-files.py"

    args = rebase_path(sources + outputs, root_build_dir)
  }
}

action("postmortem-metadata") {
  # Only targets in this file and the top-level visibility target can
  # depend on this.
  visibility = [
    ":*",
    "//:gn_visibility",
  ]

  script = "tools/gen-postmortem-metadata.py"

  # NOSORT
  sources = [
    "src/objects/objects.h",
    "src/objects/objects-inl.h",
    "src/objects/allocation-site-inl.h",
    "src/objects/allocation-site.h",
    "src/objects/cell-inl.h",
    "src/objects/cell.h",
    "src/objects/code-inl.h",
    "src/objects/code.h",
    "src/objects/data-handler.h",
    "src/objects/data-handler-inl.h",
    "src/objects/feedback-cell.h",
    "src/objects/feedback-cell-inl.h",
    "src/objects/fixed-array-inl.h",
    "src/objects/fixed-array.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.h",
    "src/objects/js-array-inl.h",
    "src/objects/js-array.h",
    "src/objects/js-array-buffer-inl.h",
    "src/objects/js-array-buffer.h",
    "src/objects/js-objects-inl.h",
    "src/objects/js-objects.h",
    "src/objects/js-promise-inl.h",
    "src/objects/js-promise.h",
    "src/objects/js-regexp-inl.h",
    "src/objects/js-regexp.h",
    "src/objects/js-regexp-string-iterator-inl.h",
    "src/objects/js-regexp-string-iterator.h",
    "src/objects/map.h",
    "src/objects/map.cc",
    "src/objects/map-inl.h",
    "src/objects/js-objects.cc",
    "src/objects/name.h",
    "src/objects/name-inl.h",
    "src/objects/oddball-inl.h",
    "src/objects/oddball.h",
    "src/objects/scope-info.h",
    "src/objects/script.h",
    "src/objects/script-inl.h",
    "src/objects/shared-function-info.h",
    "src/objects/shared-function-info-inl.h",
    "src/objects/string.cc",
    "src/objects/string.h",
    "src/objects/string-comparator.cc",
    "src/objects/string-comparator.h",
    "src/objects/string-inl.h",
    "src/objects/struct.h",
    "src/objects/struct-inl.h",
  ]

  outputs = [
    "$target_gen_dir/debug-support.cc",
  ]

  args = rebase_path(outputs, root_build_dir) +
         rebase_path(sources, root_build_dir)
}

torque_files = [
  "src/builtins/arguments.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-foreach.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/base.tq",
  "src/builtins/bigint.tq",
  "src/builtins/boolean.tq",
  "src/builtins/collections.tq",
  "src/builtins/data-view.tq",
  "src/builtins/extras-utils.tq",
  "src/builtins/frames.tq",
  "src/builtins/growable-fixed-array.tq",
  "src/builtins/internal-coverage.tq",
  "src/builtins/iterator.tq",
  "src/builtins/math.tq",
  "src/builtins/object-fromentries.tq",
  "src/builtins/object.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-replace.tq",
  "src/builtins/regexp.tq",
  "src/builtins/string.tq",
  "src/builtins/string-endswith.tq",
  "src/builtins/string-html.tq",
  "src/builtins/string-iterator.tq",
  "src/builtins/string-repeat.tq",
  "src/builtins/string-slice.tq",
  "src/builtins/string-startswith.tq",
  "src/builtins/string-substring.tq",
  "src/builtins/typed-array-createtypedarray.tq",
  "src/builtins/typed-array-every.tq",
  "src/builtins/typed-array-filter.tq",
  "src/builtins/typed-array-find.tq",
  "src/builtins/typed-array-findindex.tq",
  "src/builtins/typed-array-foreach.tq",
  "src/builtins/typed-array-reduce.tq",
  "src/builtins/typed-array-reduceright.tq",
  "src/builtins/typed-array-slice.tq",
  "src/builtins/typed-array-some.tq",
  "src/builtins/typed-array-subarray.tq",
  "src/builtins/typed-array.tq",
  "src/objects/intl-objects.tq",
  "test/torque/test-torque.tq",
  "third_party/v8/builtins/array-sort.tq",
]

if (!v8_enable_i18n_support) {
  torque_files -= [ "src/objects/intl-objects.tq" ]
}

action("run_torque") {
  visibility = [
    ":*",
    "tools/gcmole/:*",
    "test/cctest/:*",
  ]

  deps = [
    ":torque($v8_generator_toolchain)",
  ]

  script = "tools/run.py"

  sources = torque_files

  outputs = [
    "$target_gen_dir/torque-generated/builtin-definitions-tq.h",
    "$target_gen_dir/torque-generated/field-offsets-tq.h",
    "$target_gen_dir/torque-generated/class-verifiers-tq.cc",
    "$target_gen_dir/torque-generated/class-verifiers-tq.h",
    "$target_gen_dir/torque-generated/objects-printer-tq.cc",
    "$target_gen_dir/torque-generated/class-definitions-tq.cc",
    "$target_gen_dir/torque-generated/class-definitions-tq-inl.h",
    "$target_gen_dir/torque-generated/class-definitions-tq.h",
    "$target_gen_dir/torque-generated/exported-macros-assembler-tq.cc",
    "$target_gen_dir/torque-generated/exported-macros-assembler-tq.h",
    "$target_gen_dir/torque-generated/csa-types-tq.h",
    "$target_gen_dir/torque-generated/instance-types-tq.h",
  ]
  foreach(file, torque_files) {
    filetq = string_replace(file, ".tq", "-tq-csa")
    outputs += [
      "$target_gen_dir/torque-generated/$filetq.cc",
      "$target_gen_dir/torque-generated/$filetq.h",
    ]
  }

  args = [
    "./" + rebase_path(get_label_info(":torque($v8_generator_toolchain)",
                                      "root_out_dir") + "/torque",
                       root_build_dir),
    "-o",
    rebase_path("$target_gen_dir/torque-generated", root_build_dir),
    "-v8-root",
    rebase_path(".", root_build_dir),
  ]
  args += torque_files
}

group("v8_maybe_icu") {
  if (v8_enable_i18n_support) {
    public_deps = [
      "//third_party/icu",
    ]
  }
}

v8_source_set("torque_generated_initializers") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  deps = [
    ":generate_bytecode_builtins_list",
    ":run_torque",
  ]

  public_deps = [
    ":v8_maybe_icu",
  ]

  sources = [
    "$target_gen_dir/torque-generated/csa-types-tq.h",
    "$target_gen_dir/torque-generated/exported-macros-assembler-tq.cc",
    "$target_gen_dir/torque-generated/exported-macros-assembler-tq.h",
  ]
  foreach(file, torque_files) {
    filetq = string_replace(file, ".tq", "-tq-csa")
    sources += [
      "$target_gen_dir/torque-generated/$filetq.cc",
      "$target_gen_dir/torque-generated/$filetq.h",
    ]
  }

  configs = [ ":internal_config" ]
}

v8_source_set("torque_generated_definitions") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  deps = [
    ":generate_bytecode_builtins_list",
    ":run_torque",
  ]

  public_deps = [
    ":v8_maybe_icu",
  ]

  sources = [
    "$target_gen_dir/torque-generated/class-definitions-tq.cc",
    "$target_gen_dir/torque-generated/class-verifiers-tq.cc",
    "$target_gen_dir/torque-generated/class-verifiers-tq.h",
    "$target_gen_dir/torque-generated/objects-printer-tq.cc",
  ]

  configs = [ ":internal_config" ]
}

action("generate_bytecode_builtins_list") {
  script = "tools/run.py"
  outputs = [
    "$target_gen_dir/builtins-generated/bytecodes-builtins-list.h",
  ]
  deps = [
    ":bytecode_builtins_list_generator($v8_generator_toolchain)",
  ]
  args = [
    "./" + rebase_path(
            get_label_info(
                    ":bytecode_builtins_list_generator($v8_generator_toolchain)",
                    "root_out_dir") + "/bytecode_builtins_list_generator",
            root_build_dir),
    rebase_path("$target_gen_dir/builtins-generated/bytecodes-builtins-list.h",
                root_build_dir),
  ]
}

# Template to generate different V8 snapshots based on different runtime flags.
# Can be invoked with run_mksnapshot(<name>). The target will resolve to
# run_mksnapshot_<name>. If <name> is "default", no file suffixes will be used.
# Otherwise files are suffixed, e.g. embedded_<name>.S and
# snapshot_blob_<name>.bin.
#
# The template exposes the variables:
#   args: additional flags for mksnapshots
#   embedded_suffix: a camel case suffix for method names in the embedded
#       snapshot.
template("run_mksnapshot") {
  name = target_name
  if (name == "default") {
    suffix = ""
  } else {
    suffix = "_$name"
  }
  action("run_mksnapshot_" + name) {
    visibility = [ ":*" ]  # Only targets in this file can depend on this.

    deps = [
      ":mksnapshot($v8_snapshot_toolchain)",
    ]

    script = "tools/run.py"

    sources = []

    outputs = []

    data = []

    args = [
      "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
                                        "root_out_dir") + "/mksnapshot",
                         root_build_dir),
      "--turbo_instruction_scheduling",

      # In cross builds, the snapshot may be generated for both the host and
      # target toolchains.  The same host binary is used to generate both, so
      # mksnapshot needs to know which target OS to use at runtime.  It's weird,
      # but the target OS is really |current_os|.
      "--target_os=$current_os",
      "--target_arch=$current_cpu",
    ]

    args += invoker.args

    if (v8_enable_embedded_builtins) {
      outputs += [ "$target_gen_dir/embedded${suffix}.S" ]
      args += [
        "--embedded_src",
        rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir),
      ]
      if (invoker.embedded_variant != "") {
        args += [
          "--embedded_variant",
          invoker.embedded_variant,
        ]
      }
    }

    if (v8_random_seed != "0") {
      args += [
        "--random-seed",
        v8_random_seed,
      ]
    }

    if (v8_os_page_size != "0") {
      args += [
        "--v8_os_page_size",
        v8_os_page_size,
      ]
    }

    if (v8_use_external_startup_data) {
      outputs += [ "$root_out_dir/snapshot_blob${suffix}.bin" ]
      data += [ "$root_out_dir/snapshot_blob${suffix}.bin" ]
      args += [
        "--startup_blob",
        rebase_path("$root_out_dir/snapshot_blob${suffix}.bin", root_build_dir),
      ]
    } else {
      outputs += [ "$target_gen_dir/snapshot${suffix}.cc" ]
      args += [
        "--startup_src",
        rebase_path("$target_gen_dir/snapshot${suffix}.cc", root_build_dir),
      ]
    }

    if (v8_embed_script != "") {
      sources += [ v8_embed_script ]
      args += [ rebase_path(v8_embed_script, root_build_dir) ]
    }

    if (v8_enable_snapshot_code_comments) {
      args += [ "--code-comments" ]
    }

    if (v8_enable_snapshot_native_code_counters) {
      args += [ "--native-code-counters" ]
    } else {
      # --native-code-counters is the default in debug mode so make sure we can
      # unset it.
      args += [ "--no-native-code-counters" ]
    }

    if (v8_enable_fast_mksnapshot) {
      args += [
        "--no-turbo-rewrite-far-jumps",
        "--no-turbo-verify-allocation",
      ]

      if (v8_enable_debugging_features && v8_enable_slow_dchecks) {
        # mksnapshot only accepts this flag if ENABLE_SLOW_DCHECKS is defined.
        args += [ "--no-enable-slow-asserts" ]
      }
    }
  }
}

if (v8_use_snapshot) {
  run_mksnapshot("default") {
    args = []
    if (v8_enable_embedded_builtins) {
      embedded_variant = "Default"
    }
  }
  if (emit_builtins_as_inline_asm) {
    asm_to_inline_asm("default") {
      args = []
    }
  }
  if (v8_use_multi_snapshots) {
    run_mksnapshot("trusted") {
      args = [ "--no-untrusted-code-mitigations" ]
      if (v8_enable_embedded_builtins) {
        embedded_variant = "Trusted"
      }
    }
    if (emit_builtins_as_inline_asm) {
      asm_to_inline_asm("trusted") {
        args = []
      }
    }
  }
}

action("v8_dump_build_config") {
  script = "tools/testrunner/utils/dump_build_config.py"
  outputs = [
    "$root_out_dir/v8_build_config.json",
  ]
  is_gcov_coverage = v8_code_coverage && !is_clang
  is_full_debug = v8_enable_debugging_features && !v8_optimized_debug
  args = [
    rebase_path("$root_out_dir/v8_build_config.json", root_build_dir),
    "current_cpu=\"$current_cpu\"",
    "dcheck_always_on=$dcheck_always_on",
    "is_android=$is_android",
    "is_asan=$is_asan",
    "is_cfi=$is_cfi",
    "is_clang=$is_clang",
    "is_component_build=$is_component_build",
    "is_debug=$v8_enable_debugging_features",
    "is_full_debug=$is_full_debug",
    "is_gcov_coverage=$is_gcov_coverage",
    "is_msan=$is_msan",
    "is_tsan=$is_tsan",
    "is_ubsan_vptr=$is_ubsan_vptr",
    "target_cpu=\"$target_cpu\"",
    "v8_current_cpu=\"$v8_current_cpu\"",
    "v8_enable_i18n_support=$v8_enable_i18n_support",
    "v8_enable_verify_predictable=$v8_enable_verify_predictable",
    "v8_target_cpu=\"$v8_target_cpu\"",
    "v8_use_snapshot=$v8_use_snapshot",
    "v8_enable_embedded_builtins=$v8_enable_embedded_builtins",
    "v8_enable_verify_csa=$v8_enable_verify_csa",
    "v8_enable_lite_mode=$v8_enable_lite_mode",
    "v8_enable_pointer_compression=$v8_enable_pointer_compression",
  ]

  if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" ||
      v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
    args += [
      "mips_arch_variant=\"$mips_arch_variant\"",
      "mips_use_msa=$mips_use_msa",
    ]
  }
}

###############################################################################
# Source Sets (aka static libraries)
#

source_set("v8_maybe_snapshot") {
  if (v8_use_snapshot && v8_use_external_startup_data) {
    public_deps = [
      ":v8_external_snapshot",
    ]
  } else if (v8_use_snapshot) {
    public_deps = [
      ":v8_snapshot",
    ]
  } else {
    # Ignore v8_use_external_startup_data setting if no snapshot is used.
    public_deps = [
      ":v8_init",
      ":v8_nosnapshot",
    ]
  }
}

v8_source_set("v8_nosnapshot") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  deps = [
    ":js2c_extras",
    ":torque_generated_initializers",
  ]

  public_deps = [
    ":v8_maybe_icu",
  ]

  sources = [
    "$target_gen_dir/extras-libraries.cc",
    "src/snapshot/embedded/embedded-empty.cc",
    "src/snapshot/snapshot-empty.cc",
  ]

  configs = [ ":internal_config" ]
}

if (v8_use_snapshot && !v8_use_external_startup_data) {
  v8_source_set("v8_snapshot") {
    # Only targets in this file and the top-level visibility target can
    # depend on this.
    visibility = [
      ":*",
      "//:gn_visibility",
    ]

    deps = [
      ":js2c_extras",
    ]

    public_deps = [
      # This should be public so downstream targets can declare the snapshot
      # output file as their inputs.
      ":run_mksnapshot_default",
      ":v8_maybe_icu",
    ]

    # Do not publicize any header to remove build dependency.
    public = []

    sources = [
      "$target_gen_dir/extras-libraries.cc",
      "$target_gen_dir/snapshot.cc",
      "src/init/setup-isolate-deserialize.cc",
    ]

    if (v8_enable_embedded_builtins && emit_builtins_as_inline_asm) {
      deps += [ ":asm_to_inline_asm_default" ]
      sources += [ "$target_gen_dir/embedded.cc" ]
    } else if (v8_enable_embedded_builtins) {
      sources += [ "$target_gen_dir/embedded.S" ]
    } else {
      sources += [ "src/snapshot/embedded/embedded-empty.cc" ]
    }

    configs = [ ":internal_config" ]
  }
}

if (v8_use_snapshot && v8_use_external_startup_data) {
  v8_source_set("v8_external_snapshot") {
    visibility = [ ":*" ]  # Only targets in this file can depend on this.

    deps = [
      ":js2c_extras",
      ":v8_base",
    ]
    public_deps = [
      ":natives_blob",
      ":run_mksnapshot_default",
    ]

    if (v8_use_multi_snapshots) {
      public_deps += [ ":run_mksnapshot_trusted" ]
    }

    sources = [
      "src/init/setup-isolate-deserialize.cc",
      "src/snapshot/natives-external.cc",
      "src/snapshot/snapshot-external.cc",
    ]

    # Do not publicize any header to remove build dependency.
    public = []

    if (v8_enable_embedded_builtins && emit_builtins_as_inline_asm) {
      deps += [ ":asm_to_inline_asm_default" ]
      sources += [ "$target_gen_dir/embedded.cc" ]

      if (v8_use_multi_snapshots) {
        deps += [ ":asm_to_inline_asm_trusted" ]
        sources += [ "$target_gen_dir/embedded_trusted.cc" ]
        jumbo_excluded_sources = [ "$target_gen_dir/embedded_trusted.cc" ]
      }
    } else if (v8_enable_embedded_builtins) {
      sources += [ "$target_gen_dir/embedded.S" ]

      if (v8_use_multi_snapshots) {
        sources += [ "$target_gen_dir/embedded_trusted.S" ]
        jumbo_excluded_sources = [
          # Duplicated symbols with embedded.S
          "$target_gen_dir/embedded_trusted.S",
        ]
      }
    } else {
      sources += [ "src/snapshot/embedded/embedded-empty.cc" ]
    }

    configs = [ ":internal_config" ]
  }
}

v8_source_set("v8_initializers") {
  visibility = [
    ":*",
    "test/cctest:*",
  ]

  deps = [
    ":torque_generated_initializers",
  ]

  sources = [
    ### gcmole(all) ###
    "src/builtins/builtins-arguments-gen.cc",
    "src/builtins/builtins-arguments-gen.h",
    "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-boolean-gen.cc",
    "src/builtins/builtins-call-gen.cc",
    "src/builtins/builtins-call-gen.h",
    "src/builtins/builtins-collections-gen.cc",
    "src/builtins/builtins-console-gen.cc",
    "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-debug-gen.cc",
    "src/builtins/builtins-function-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-intl-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-math-gen.cc",
    "src/builtins/builtins-math-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-reflect-gen.cc",
    "src/builtins/builtins-regexp-gen.cc",
    "src/builtins/builtins-regexp-gen.h",
    "src/builtins/builtins-sharedarraybuffer-gen.cc",
    "src/builtins/builtins-string-gen.cc",
    "src/builtins/builtins-string-gen.h",
    "src/builtins/builtins-symbol-gen.cc",
    "src/builtins/builtins-typed-array-gen.cc",
    "src/builtins/builtins-typed-array-gen.h",
    "src/builtins/builtins-utils-gen.h",
    "src/builtins/builtins-wasm-gen.cc",
    "src/builtins/growable-fixed-array-gen.cc",
    "src/builtins/growable-fixed-array-gen.h",
    "src/builtins/setup-builtins-internal.cc",
    "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/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",
  ]

  jumbo_excluded_sources = [
    # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428
    "src/builtins/builtins-async-iterator-gen.cc",
    "src/builtins/builtins-async-generator-gen.cc",

    # These source files take an unusually large amount of time to
    # compile.  Build them separately to avoid bottlenecks.
    "src/builtins/builtins-regexp-gen.cc",
    "src/codegen/code-stub-assembler.cc",
  ]

  if (v8_current_cpu == "x86") {
    sources += [
      ### gcmole(arch:ia32) ###
      "src/builtins/ia32/builtins-ia32.cc",
    ]
  } else if (v8_current_cpu == "x64") {
    sources += [
      ### gcmole(arch:x64) ###
      "src/builtins/x64/builtins-x64.cc",
    ]
  } else if (v8_current_cpu == "arm") {
    sources += [
      ### gcmole(arch:arm) ###
      "src/builtins/arm/builtins-arm.cc",
    ]
  } else if (v8_current_cpu == "arm64") {
    sources += [
      ### gcmole(arch:arm64) ###
      "src/builtins/arm64/builtins-arm64.cc",
    ]
  } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
    sources += [
      ### gcmole(arch:mipsel) ###
      "src/builtins/mips/builtins-mips.cc",
    ]
  } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
    sources += [
      ### gcmole(arch:mips64el) ###
      "src/builtins/mips64/builtins-mips64.cc",
    ]
  } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
    sources += [
      ### gcmole(arch:ppc) ###
      "src/builtins/ppc/builtins-ppc.cc",
    ]
  } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
    sources += [
      ### gcmole(arch:s390) ###
      "src/builtins/s390/builtins-s390.cc",
    ]
  }

  if (!v8_enable_i18n_support) {
    sources -= [ "src/builtins/builtins-intl-gen.cc" ]
  }

  configs = [ ":internal_config" ]
}

v8_source_set("v8_init") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  deps = [
    ":v8_initializers",
  ]

  sources = [
    ### gcmole(all) ###
    "src/init/setup-isolate-full.cc",
  ]

  public_deps = [
    ":v8_maybe_icu",
  ]

  configs = [ ":internal_config" ]
}

# This is split out to be a non-code containing target that the Chromium browser
# DLL can depend upon to get only a version string.
v8_header_set("v8_version") {
  configs = [ ":internal_config" ]

  sources = [
    "include/v8-value-serializer-version.h",
    "include/v8-version-string.h",
    "include/v8-version.h",
  ]
}

# This is split out to be a non-code containing target that the Chromium browser
# can depend upon to get basic v8 types.
v8_header_set("v8_headers") {
  configs = [ ":internal_config" ]
  public_configs = [ ":v8_header_features" ]

  sources = [
    "include/v8-internal.h",
    "include/v8.h",
    "include/v8config.h",
  ]

  sources += [
    # The following headers cannot be platform-specific. The include validation
    # of `gn gen $dir --check` requires all header files to be available on all
    # platforms.
    "include/v8-wasm-trap-handler-posix.h",
    "include/v8-wasm-trap-handler-win.h",
  ]

  deps = [
    ":v8_version",
  ]
}

# This is split out to share basic headers with Torque.
v8_header_set("v8_shared_internal_headers") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.
  configs = [ ":internal_config" ]

  sources = [
    "src/common/globals.h",
  ]

  deps = [
    ":v8_headers",
  ]
}

v8_compiler_sources = [
  ### gcmole(all) ###
  "src/compiler/access-builder.cc",
  "src/compiler/access-builder.h",
  "src/compiler/access-info.cc",
  "src/compiler/access-info.h",
  "src/compiler/all-nodes.cc",
  "src/compiler/all-nodes.h",
  "src/compiler/allocation-builder-inl.h",
  "src/compiler/allocation-builder.h",
  "src/compiler/backend/code-generator-impl.h",
  "src/compiler/backend/code-generator.cc",
  "src/compiler/backend/code-generator.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-codes.h",
  "src/compiler/backend/instruction-scheduler.cc",
  "src/compiler/backend/instruction-scheduler.h",
  "src/compiler/backend/instruction-selector-impl.h",
  "src/compiler/backend/instruction-selector.cc",
  "src/compiler/backend/instruction-selector.h",
  "src/compiler/backend/instruction.cc",
  "src/compiler/backend/instruction.h",
  "src/compiler/backend/jump-threading.cc",
  "src/compiler/backend/jump-threading.h",
  "src/compiler/backend/live-range-separator.cc",
  "src/compiler/backend/live-range-separator.h",
  "src/compiler/backend/move-optimizer.cc",
  "src/compiler/backend/move-optimizer.h",
  "src/compiler/backend/register-allocator-verifier.cc",
  "src/compiler/backend/register-allocator-verifier.h",
  "src/compiler/backend/register-allocator.cc",
  "src/compiler/backend/register-allocator.h",
  "src/compiler/backend/unwinding-info-writer.h",
  "src/compiler/basic-block-instrumentor.cc",
  "src/compiler/basic-block-instrumentor.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-reducer.cc",
  "src/compiler/common-operator-reducer.h",
  "src/compiler/common-operator.cc",
  "src/compiler/common-operator.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-elimination.cc",
  "src/compiler/decompression-elimination.h",
  "src/compiler/diamond.h",
  "src/compiler/effect-control-linearizer.cc",
  "src/compiler/effect-control-linearizer.h",
  "src/compiler/escape-analysis-reducer.cc",
  "src/compiler/escape-analysis-reducer.h",
  "src/compiler/escape-analysis.cc",
  "src/compiler/escape-analysis.h",
  "src/compiler/frame-states.cc",
  "src/compiler/frame-states.h",
  "src/compiler/frame.cc",
  "src/compiler/frame.h",
  "src/compiler/functional-list.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.cc",
  "src/compiler/graph.h",
  "src/compiler/int64-lowering.cc",
  "src/compiler/int64-lowering.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-heap-copy-reducer.cc",
  "src/compiler/js-heap-copy-reducer.h",
  "src/compiler/js-inlining-heuristic.cc",
  "src/compiler/js-inlining-heuristic.h",
  "src/compiler/js-inlining.cc",
  "src/compiler/js-inlining.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-variable-optimizer.cc",
  "src/compiler/loop-variable-optimizer.h",
  "src/compiler/machine-graph-verifier.cc",
  "src/compiler/machine-graph-verifier.h",
  "src/compiler/machine-graph.cc",
  "src/compiler/machine-graph.h",
  "src/compiler/machine-operator-reducer.cc",
  "src/compiler/machine-operator-reducer.h",
  "src/compiler/machine-operator.cc",
  "src/compiler/machine-operator.h",
  "src/compiler/map-inference.cc",
  "src/compiler/map-inference.h",
  "src/compiler/memory-optimizer.cc",
  "src/compiler/memory-optimizer.h",
  "src/compiler/node-aux-data.h",
  "src/compiler/node-cache.cc",
  "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-origin-table.cc",
  "src/compiler/node-origin-table.h",
  "src/compiler/node-properties.cc",
  "src/compiler/node-properties.h",
  "src/compiler/node.cc",
  "src/compiler/node.h",
  "src/compiler/opcodes.cc",
  "src/compiler/opcodes.h",
  "src/compiler/operation-typer.cc",
  "src/compiler/operation-typer.h",
  "src/compiler/operator-properties.cc",
  "src/compiler/operator-properties.h",
  "src/compiler/operator.cc",
  "src/compiler/operator.h",
  "src/compiler/osr.cc",
  "src/compiler/osr.h",
  "src/compiler/per-isolate-compiler-cache.h",
  "src/compiler/persistent-map.h",
  "src/compiler/pipeline-statistics.cc",
  "src/compiler/pipeline-statistics.h",
  "src/compiler/pipeline.cc",
  "src/compiler/pipeline.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/serializer-for-background-compilation.cc",
  "src/compiler/serializer-for-background-compilation.h",
  "src/compiler/simd-scalar-lowering.cc",
  "src/compiler/simd-scalar-lowering.h",
  "src/compiler/simplified-lowering.cc",
  "src/compiler/simplified-lowering.h",
  "src/compiler/simplified-operator-reducer.cc",
  "src/compiler/simplified-operator-reducer.h",
  "src/compiler/simplified-operator.cc",
  "src/compiler/simplified-operator.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/add-type-assertions-reducer.cc",
  "src/compiler/add-type-assertions-reducer.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/vector-slot-pair.cc",
  "src/compiler/vector-slot-pair.h",
  "src/compiler/verifier.cc",
  "src/compiler/verifier.h",
  "src/compiler/wasm-compiler.cc",
  "src/compiler/wasm-compiler.h",
  "src/compiler/write-barrier-kind.h",
  "src/compiler/zone-stats.cc",
  "src/compiler/zone-stats.h",
]

# The src/compiler files with optimizations.
v8_source_set("v8_compiler_opt") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  sources = v8_compiler_sources

  public_deps = [
    ":generate_bytecode_builtins_list",
    ":run_torque",
    ":v8_maybe_icu",
  ]

  if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) {
    # The :no_optimize config is added to v8_add_configs in v8.gni.
    remove_configs = [ "//build/config/compiler:no_optimize" ]
    configs = [ ":always_optimize" ]
  } else {
    # Without this else branch, gn fails to generate build files for non-debug
    # builds (because we try to remove a config that is not present).
    # So we include it, even if this config is not used outside of debug builds.
    configs = [ ":internal_config" ]
  }
}

# The src/compiler files with default optimization behavior.
v8_source_set("v8_compiler") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  sources = v8_compiler_sources

  public_deps = [
    ":generate_bytecode_builtins_list",
    ":run_torque",
    ":v8_maybe_icu",
  ]

  configs = [ ":internal_config" ]
}

group("v8_compiler_for_mksnapshot") {
  if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) {
    deps = [
      ":v8_compiler_opt",
    ]
  } else {
    deps = [
      ":v8_compiler",
    ]
  }
}

v8_source_set("v8_base_without_compiler") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  # Split static libraries on windows into two.
  split_count = 2

  sources = [
    "//base/trace_event/common/trace_event_common.h",

    ### gcmole(all) ###
    "$target_gen_dir/builtins-generated/bytecodes-builtins-list.h",
    "include/v8-inspector-protocol.h",
    "include/v8-inspector.h",
    "include/v8-internal.h",
    "include/v8-platform.h",
    "include/v8-profiler.h",
    "include/v8-testing.h",
    "include/v8-util.h",
    "include/v8-wasm-trap-handler-posix.h",
    "include/v8.h",
    "include/v8config.h",
    "src/api/api-arguments-inl.h",
    "src/api/api-arguments.cc",
    "src/api/api-arguments.h",
    "src/api/api-natives.cc",
    "src/api/api-natives.h",
    "src/api/api.cc",
    "src/api/api.h",
    "src/asmjs/asm-js.cc",
    "src/asmjs/asm-js.h",
    "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/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/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-bigint.cc",
    "src/builtins/builtins-call.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-extras-utils.cc",
    "src/builtins/builtins-function.cc",
    "src/builtins/builtins-global.cc",
    "src/builtins/builtins-internal.cc",
    "src/builtins/builtins-intl.cc",
    "src/builtins/builtins-json.cc",
    "src/builtins/builtins-math.cc",
    "src/builtins/builtins-number.cc",
    "src/builtins/builtins-object.cc",
    "src/builtins/builtins-promise.cc",
    "src/builtins/builtins-promise.h",
    "src/builtins/builtins-reflect.cc",
    "src/builtins/builtins-regexp.cc",
    "src/builtins/builtins-sharedarraybuffer.cc",
    "src/builtins/builtins-string.cc",
    "src/builtins/builtins-symbol.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/codegen/assembler-arch.h",
    "src/codegen/assembler-inl.h",
    "src/codegen/assembler.cc",
    "src/codegen/assembler.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-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.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-configuration.cc",
    "src/codegen/register-configuration.h",
    "src/codegen/register.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/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/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/checks.h",
    "src/common/ptr-compr-inl.h",
    "src/common/ptr-compr.h",
    "src/compiler-dispatcher/compiler-dispatcher.cc",
    "src/compiler-dispatcher/compiler-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.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/deoptimizer.cc",
    "src/deoptimizer/deoptimizer.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/execution/arguments-inl.h",
    "src/execution/arguments.cc",
    "src/execution/arguments.h",
    "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.cc",
    "src/execution/isolate.h",
    "src/execution/message-template.h",
    "src/execution/messages.cc",
    "src/execution/messages.h",
    "src/execution/microtask-queue.cc",
    "src/execution/microtask-queue.h",
    "src/execution/runtime-profiler.cc",
    "src/execution/runtime-profiler.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/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/free-buffer-extension.cc",
    "src/extensions/free-buffer-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.cc",
    "src/handles/global-handles.h",
    "src/handles/handles-inl.h",
    "src/handles/handles.cc",
    "src/handles/handles.h",
    "src/handles/maybe-handles-inl.h",
    "src/handles/maybe-handles.h",
    "src/heap/array-buffer-collector.cc",
    "src/heap/array-buffer-collector.h",
    "src/heap/array-buffer-tracker-inl.h",
    "src/heap/array-buffer-tracker.cc",
    "src/heap/array-buffer-tracker.h",
    "src/heap/barrier.h",
    "src/heap/basic-memory-chunk.cc",
    "src/heap/basic-memory-chunk.h",
    "src/heap/code-stats.cc",
    "src/heap/code-stats.h",
    "src/heap/combined-heap.cc",
    "src/heap/combined-heap.h",
    "src/heap/concurrent-marking.cc",
    "src/heap/concurrent-marking.h",
    "src/heap/embedder-tracing.cc",
    "src/heap/embedder-tracing.h",
    "src/heap/factory-inl.h",
    "src/heap/factory.cc",
    "src/heap/factory.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-controller.cc",
    "src/heap/heap-controller.h",
    "src/heap/heap-inl.h",
    "src/heap/heap-write-barrier-inl.h",
    "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/invalidated-slots-inl.h",
    "src/heap/invalidated-slots.cc",
    "src/heap/invalidated-slots.h",
    "src/heap/item-parallel-job.cc",
    "src/heap/item-parallel-job.h",
    "src/heap/local-allocator-inl.h",
    "src/heap/local-allocator.h",
    "src/heap/mark-compact-inl.h",
    "src/heap/mark-compact.cc",
    "src/heap/mark-compact.h",
    "src/heap/marking.cc",
    "src/heap/marking.h",
    "src/heap/memory-reducer.cc",
    "src/heap/memory-reducer.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/read-only-heap-inl.h",
    "src/heap/read-only-heap.cc",
    "src/heap/read-only-heap.h",
    "src/heap/remembered-set.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/store-buffer-inl.h",
    "src/heap/store-buffer.cc",
    "src/heap/store-buffer.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/worklist.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-accessor.cc",
    "src/interpreter/bytecode-array-accessor.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-inl.h",
    "src/logging/counters.cc",
    "src/logging/counters.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/numbers/bignum-dtoa.cc",
    "src/numbers/bignum-dtoa.h",
    "src/numbers/bignum.cc",
    "src/numbers/bignum.h",
    "src/numbers/cached-powers.cc",
    "src/numbers/cached-powers.h",
    "src/numbers/conversions-inl.h",
    "src/numbers/conversions.cc",
    "src/numbers/conversions.h",
    "src/numbers/diy-fp.cc",
    "src/numbers/diy-fp.h",
    "src/numbers/double.h",
    "src/numbers/dtoa.cc",
    "src/numbers/dtoa.h",
    "src/numbers/fast-dtoa.cc",
    "src/numbers/fast-dtoa.h",
    "src/numbers/fixed-dtoa.cc",
    "src/numbers/fixed-dtoa.h",
    "src/numbers/hash-seed-inl.h",
    "src/numbers/math-random.cc",
    "src/numbers/math-random.h",
    "src/numbers/strtod.cc",
    "src/numbers/strtod.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/bigint.cc",
    "src/objects/bigint.h",
    "src/objects/cell-inl.h",
    "src/objects/cell.h",
    "src/objects/code-inl.h",
    "src/objects/code.cc",
    "src/objects/code.h",
    "src/objects/compilation-cache-inl.h",
    "src/objects/compilation-cache.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.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/frame-array-inl.h",
    "src/objects/frame-array.h",
    "src/objects/function-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/intl-objects.cc",
    "src/objects/intl-objects.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-break-iterator-inl.h",
    "src/objects/js-break-iterator.cc",
    "src/objects/js-break-iterator.h",
    "src/objects/js-collator-inl.h",
    "src/objects/js-collator.cc",
    "src/objects/js-collator.h",
    "src/objects/js-collection-inl.h",
    "src/objects/js-collection-iterator.h",
    "src/objects/js-collection.h",
    "src/objects/js-date-time-format-inl.h",
    "src/objects/js-date-time-format.cc",
    "src/objects/js-date-time-format.h",
    "src/objects/js-generator-inl.h",
    "src/objects/js-generator.h",
    "src/objects/js-list-format-inl.h",
    "src/objects/js-list-format.cc",
    "src/objects/js-list-format.h",
    "src/objects/js-locale-inl.h",
    "src/objects/js-locale.cc",
    "src/objects/js-locale.h",
    "src/objects/js-number-format-inl.h",
    "src/objects/js-number-format.cc",
    "src/objects/js-number-format.h",
    "src/objects/js-objects-inl.h",
    "src/objects/js-objects.cc",
    "src/objects/js-objects.h",
    "src/objects/js-plural-rules-inl.h",
    "src/objects/js-plural-rules.cc",
    "src/objects/js-plural-rules.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.h",
    "src/objects/js-relative-time-format-inl.h",
    "src/objects/js-relative-time-format.cc",
    "src/objects/js-relative-time-format.h",
    "src/objects/js-segment-iterator-inl.h",
    "src/objects/js-segment-iterator.cc",
    "src/objects/js-segment-iterator.h",
    "src/objects/js-segmenter-inl.h",
    "src/objects/js-segmenter.cc",
    "src/objects/js-segmenter.h",
    "src/objects/js-weak-refs-inl.h",
    "src/objects/js-weak-refs.h",
    "src/objects/keys.cc",
    "src/objects/keys.h",
    "src/objects/layout-descriptor-inl.h",
    "src/objects/layout-descriptor.cc",
    "src/objects/layout-descriptor.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.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/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/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/oddball-inl.h",
    "src/objects/oddball.h",
    "src/objects/ordered-hash-table-inl.h",
    "src/objects/ordered-hash-table.cc",
    "src/objects/ordered-hash-table.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/regexp-match-info.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.h",
    "src/objects/slots-atomic-inl.h",
    "src/objects/slots-inl.h",
    "src/objects/slots.h",
    "src/objects/source-text-module.cc",
    "src/objects/source-text-module.h",
    "src/objects/stack-frame-info-inl.h",
    "src/objects/stack-frame-info.cc",
    "src/objects/stack-frame-info.h",
    "src/objects/string-comparator.cc",
    "src/objects/string-comparator.h",
    "src/objects/string-inl.h",
    "src/objects/string-table-inl.h",
    "src/objects/string-table.h",
    "src/objects/string.cc",
    "src/objects/string.h",
    "src/objects/struct-inl.h",
    "src/objects/struct.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-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.h",
    "src/objects/transitions-inl.h",
    "src/objects/transitions.cc",
    "src/objects/transitions.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.h",
    "src/parsing/expression-scope-reparenter.cc",
    "src/parsing/expression-scope-reparenter.h",
    "src/parsing/expression-scope.h",
    "src/parsing/func-name-inferrer.cc",
    "src/parsing/func-name-inferrer.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/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/sampling-heap-profiler.cc",
    "src/profiler/sampling-heap-profiler.h",
    "src/profiler/strings-storage.cc",
    "src/profiler/strings-storage.h",
    "src/profiler/tick-sample.cc",
    "src/profiler/tick-sample.h",
    "src/profiler/tracing-cpu-profiler.cc",
    "src/profiler/tracing-cpu-profiler.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-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-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-special-case.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/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-interpreter.cc",
    "src/runtime/runtime-intl.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-strings.cc",
    "src/runtime/runtime-symbol.cc",
    "src/runtime/runtime-test.cc",
    "src/runtime/runtime-typedarray.cc",
    "src/runtime/runtime-utils.h",
    "src/runtime/runtime-wasm.cc",
    "src/runtime/runtime-weak-refs.cc",
    "src/runtime/runtime.cc",
    "src/runtime/runtime.h",
    "src/sanitizer/asan.h",
    "src/sanitizer/lsan-page-allocator.cc",
    "src/sanitizer/lsan-page-allocator.h",
    "src/sanitizer/msan.h",
    "src/sanitizer/tsan.h",
    "src/snapshot/code-serializer.cc",
    "src/snapshot/code-serializer.h",
    "src/snapshot/deserializer-allocator.cc",
    "src/snapshot/deserializer-allocator.h",
    "src/snapshot/deserializer.cc",
    "src/snapshot/deserializer.h",
    "src/snapshot/embedded/embedded-data.cc",
    "src/snapshot/embedded/embedded-data.h",
    "src/snapshot/natives-common.cc",
    "src/snapshot/natives.h",
    "src/snapshot/object-deserializer.cc",
    "src/snapshot/object-deserializer.h",
    "src/snapshot/partial-deserializer.cc",
    "src/snapshot/partial-deserializer.h",
    "src/snapshot/partial-serializer.cc",
    "src/snapshot/partial-serializer.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-allocator.cc",
    "src/snapshot/serializer-allocator.h",
    "src/snapshot/serializer-common.cc",
    "src/snapshot/serializer-common.h",
    "src/snapshot/serializer.cc",
    "src/snapshot/serializer.h",
    "src/snapshot/snapshot-common.cc",
    "src/snapshot/snapshot-source-sink.cc",
    "src/snapshot/snapshot-source-sink.h",
    "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.cc",
    "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/task-utils.cc",
    "src/tasks/task-utils.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.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/pointer-with-payload.h",
    "src/utils/utils-inl.h",
    "src/utils/utils.cc",
    "src/utils/utils.h",
    "src/utils/vector.h",
    "src/utils/version.cc",
    "src/utils/version.h",
    # No WASM for Cobalt
    # "src/wasm/baseline/liftoff-assembler-defs.h",
    # "src/wasm/baseline/liftoff-assembler.cc",
    # "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/compilation-environment.h",
    "src/wasm/decoder.h",
    "src/wasm/function-body-decoder-impl.h",
    "src/wasm/function-body-decoder.cc",
    "src/wasm/function-body-decoder.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/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-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/streaming-decoder.cc",
    "src/wasm/streaming-decoder.h",
    "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-constants.h",
    "src/wasm/wasm-debug.cc",
    "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-feature-flags.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-interpreter.cc",
    "src/wasm/wasm-interpreter.h",
    "src/wasm/wasm-js.cc",
    "src/wasm/wasm-js.h",
    "src/wasm/wasm-limits.h",
    "src/wasm/wasm-linkage.h",
    "src/wasm/wasm-memory.cc",
    "src/wasm/wasm-memory.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-objects-inl.h",
    "src/wasm/wasm-objects.cc",
    "src/wasm/wasm-objects.h",
    "src/wasm/wasm-opcodes.cc",
    "src/wasm/wasm-opcodes.h",
    "src/wasm/wasm-result.cc",
    "src/wasm/wasm-result.h",
    "src/wasm/wasm-serialization.cc",
    "src/wasm/wasm-serialization.h",
    "src/wasm/wasm-text.cc",
    "src/wasm/wasm-text.h",
    "src/wasm/wasm-tier.h",
    "src/wasm/wasm-value.h",
    "src/zone/accounting-allocator.cc",
    "src/zone/accounting-allocator.h",
    "src/zone/zone-allocator.h",
    "src/zone/zone-chunk-list.h",
    "src/zone/zone-containers.h",
    "src/zone/zone-handle-set.h",
    "src/zone/zone-list-inl.h",
    "src/zone/zone-segment.cc",
    "src/zone/zone-segment.h",
    "src/zone/zone.cc",
    "src/zone/zone.h",
  ]

  if (v8_check_header_includes) {
    # This file will be generated by tools/generate-header-include-checks.py
    # if the "check_v8_header_includes" gclient variable is set.
    import("check-header-includes/sources.gni")
    sources += check_header_includes_sources
  }

  jumbo_excluded_sources = [
    # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428
    "src/profiler/heap-snapshot-generator.cc",  # Macro clash in mman-linux.h

    # These source files take an unusually large amount of time to
    # compile.  Build them separately to avoid bottlenecks.
    "src/api/api.cc",
    "src/heap/heap.cc",
    "src/objects/elements.cc",
    "src/objects/objects.cc",
    "src/parsing/parser.cc",
  ]

  if (v8_current_cpu == "x86") {
    sources += [  ### gcmole(arch:ia32) ###
      "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/cpu-ia32.cc",
      "src/codegen/ia32/interface-descriptors-ia32.cc",
      "src/codegen/ia32/macro-assembler-ia32.cc",
      "src/codegen/ia32/macro-assembler-ia32.h",
      "src/codegen/ia32/register-ia32.h",
      "src/codegen/ia32/sse-instr.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/debug/ia32/debug-ia32.cc",
      "src/deoptimizer/ia32/deoptimizer-ia32.cc",
      "src/diagnostics/ia32/disasm-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",
      # No WASM for Cobalt
      # "src/wasm/baseline/ia32/liftoff-assembler-ia32.h",
    ]
  } else if (v8_current_cpu == "x64") {
    sources += [  ### gcmole(arch:x64) ###
      "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/cpu-x64.cc",
      "src/codegen/x64/interface-descriptors-x64.cc",
      "src/codegen/x64/macro-assembler-x64.cc",
      "src/codegen/x64/macro-assembler-x64.h",
      "src/codegen/x64/register-x64.h",
      "src/codegen/x64/sse-instr.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/debug/x64/debug-x64.cc",
      "src/deoptimizer/x64/deoptimizer-x64.cc",
      "src/diagnostics/x64/disasm-x64.cc",
      "src/diagnostics/x64/eh-frame-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/third_party/valgrind/valgrind.h",
      # No WASM for Cobalt
      # "src/wasm/baseline/x64/liftoff-assembler-x64.h",
    ]

    # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
    # based on Darwin and thus POSIX-compliant to a similar degree.
    if (is_linux || is_mac || is_ios) {
      sources += [
        "src/trap-handler/handler-inside-posix.cc",
        "src/trap-handler/handler-inside-posix.h",
        "src/trap-handler/handler-outside-posix.cc",
      ]
    }
    if (is_win) {
      sources += [
        "src/diagnostics/unwinding-info-win64.cc",
        "src/diagnostics/unwinding-info-win64.h",
        "src/trap-handler/handler-inside-win.cc",
        "src/trap-handler/handler-inside-win.h",
        "src/trap-handler/handler-outside-win.cc",
      ]
    }
  } else if (v8_current_cpu == "arm") {
    sources += [  ### gcmole(arch:arm) ###
      "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.cc",
      "src/codegen/arm/macro-assembler-arm.cc",
      "src/codegen/arm/macro-assembler-arm.h",
      "src/codegen/arm/register-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/debug/arm/debug-arm.cc",
      "src/deoptimizer/arm/deoptimizer-arm.cc",
      "src/diagnostics/arm/disasm-arm.cc",
      "src/diagnostics/arm/eh-frame-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",
      # No WASM for Cobalt
      # "src/wasm/baseline/arm/liftoff-assembler-arm.h",
    ]
  } else if (v8_current_cpu == "arm64") {
    sources += [  ### gcmole(arch:arm64) ###
      "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/instructions-arm64-constants.cc",
      "src/codegen/arm64/instructions-arm64.cc",
      "src/codegen/arm64/instructions-arm64.h",
      "src/codegen/arm64/instrument-arm64.cc",
      "src/codegen/arm64/instrument-arm64.h",
      "src/codegen/arm64/interface-descriptors-arm64.cc",
      "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/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/debug/arm64/debug-arm64.cc",
      "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/execution/arm64/frame-constants-arm64.cc",
      "src/execution/arm64/frame-constants-arm64.h",
      "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",
      # No WASM for Cobalt
      # "src/wasm/baseline/arm64/liftoff-assembler-arm64.h",
    ]
    jumbo_excluded_sources += [
      # TODO(mostynb@vewd.com): fix this code so it doesn't need
      # to be excluded, see the comments inside.
      "src/codegen/arm64/instructions-arm64-constants.cc",
    ]
  } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
    sources += [  ### gcmole(arch:mipsel) ###
      "src/codegen/mips/assembler-mips-inl.h",
      "src/codegen/mips/assembler-mips.cc",
      "src/codegen/mips/assembler-mips.h",
      "src/codegen/mips/constants-mips.cc",
      "src/codegen/mips/constants-mips.h",
      "src/codegen/mips/cpu-mips.cc",
      "src/codegen/mips/interface-descriptors-mips.cc",
      "src/codegen/mips/macro-assembler-mips.cc",
      "src/codegen/mips/macro-assembler-mips.h",
      "src/codegen/mips/register-mips.h",
      "src/compiler/backend/mips/code-generator-mips.cc",
      "src/compiler/backend/mips/instruction-codes-mips.h",
      "src/compiler/backend/mips/instruction-scheduler-mips.cc",
      "src/compiler/backend/mips/instruction-selector-mips.cc",
      "src/debug/mips/debug-mips.cc",
      "src/deoptimizer/mips/deoptimizer-mips.cc",
      "src/diagnostics/mips/disasm-mips.cc",
      "src/execution/mips/frame-constants-mips.cc",
      "src/execution/mips/frame-constants-mips.h",
      "src/execution/mips/simulator-mips.cc",
      "src/execution/mips/simulator-mips.h",
      "src/regexp/mips/regexp-macro-assembler-mips.cc",
      "src/regexp/mips/regexp-macro-assembler-mips.h",
      # No WASM for Cobalt
      # "src/wasm/baseline/mips/liftoff-assembler-mips.h",
    ]
  } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
    sources += [  ### gcmole(arch:mips64el) ###
      "src/codegen/mips64/assembler-mips64-inl.h",
      "src/codegen/mips64/assembler-mips64.cc",
      "src/codegen/mips64/assembler-mips64.h",
      "src/codegen/mips64/constants-mips64.cc",
      "src/codegen/mips64/constants-mips64.h",
      "src/codegen/mips64/cpu-mips64.cc",
      "src/codegen/mips64/interface-descriptors-mips64.cc",
      "src/codegen/mips64/macro-assembler-mips64.cc",
      "src/codegen/mips64/macro-assembler-mips64.h",
      "src/codegen/mips64/register-mips64.h",
      "src/compiler/backend/mips64/code-generator-mips64.cc",
      "src/compiler/backend/mips64/instruction-codes-mips64.h",
      "src/compiler/backend/mips64/instruction-scheduler-mips64.cc",
      "src/compiler/backend/mips64/instruction-selector-mips64.cc",
      "src/debug/mips64/debug-mips64.cc",
      "src/deoptimizer/mips64/deoptimizer-mips64.cc",
      "src/diagnostics/mips64/disasm-mips64.cc",
      "src/execution/mips64/frame-constants-mips64.cc",
      "src/execution/mips64/frame-constants-mips64.h",
      "src/execution/mips64/simulator-mips64.cc",
      "src/execution/mips64/simulator-mips64.h",
      "src/regexp/mips64/regexp-macro-assembler-mips64.cc",
      "src/regexp/mips64/regexp-macro-assembler-mips64.h",
      # No WASM for Cobalt
      # "src/wasm/baseline/mips64/liftoff-assembler-mips64.h",
    ]
  } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
    sources += [  ### gcmole(arch:ppc) ###
      "src/codegen/ppc/assembler-ppc-inl.h",
      "src/codegen/ppc/assembler-ppc.cc",
      "src/codegen/ppc/assembler-ppc.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.cc",
      "src/codegen/ppc/macro-assembler-ppc.cc",
      "src/codegen/ppc/macro-assembler-ppc.h",
      "src/codegen/ppc/register-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/debug/ppc/debug-ppc.cc",
      "src/deoptimizer/ppc/deoptimizer-ppc.cc",
      "src/diagnostics/ppc/disasm-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",
      # No WASM for Cobalt
      # "src/wasm/baseline/ppc/liftoff-assembler-ppc.h",
    ]
  } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
    sources += [  ### gcmole(arch:s390) ###
      "src/codegen/s390/assembler-s390-inl.h",
      "src/codegen/s390/assembler-s390.cc",
      "src/codegen/s390/assembler-s390.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.cc",
      "src/codegen/s390/macro-assembler-s390.cc",
      "src/codegen/s390/macro-assembler-s390.h",
      "src/codegen/s390/register-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/debug/s390/debug-s390.cc",
      "src/deoptimizer/s390/deoptimizer-s390.cc",
      "src/diagnostics/s390/disasm-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",
      # No WASM for Cobalt
      # "src/wasm/baseline/s390/liftoff-assembler-s390.h",
    ]
  }

  configs = [ ":internal_config" ]

  defines = []
  deps = [
    ":torque_generated_definitions",
    ":v8_headers",
    ":v8_libbase",
    ":v8_libsampler",
    ":v8_shared_internal_headers",
    ":v8_version",
    "src/inspector:inspector",
  ]

  public_deps = [
    ":generate_bytecode_builtins_list",
    ":run_torque",
    ":v8_maybe_icu",
  ]

  if (v8_enable_i18n_support) {
    deps += [ ":run_gen-regexp-special-case" ]
    sources += [ "$target_gen_dir/src/regexp/special-case.cc" ]
    if (is_win) {
      deps += [ "//third_party/icu:icudata" ]
    }
  } else {
    sources -= [
      "src/builtins/builtins-intl.cc",
      "src/objects/intl-objects.cc",
      "src/objects/intl-objects.h",
      "src/objects/js-break-iterator-inl.h",
      "src/objects/js-break-iterator.cc",
      "src/objects/js-break-iterator.h",
      "src/objects/js-collator-inl.h",
      "src/objects/js-collator.cc",
      "src/objects/js-collator.h",
      "src/objects/js-date-time-format-inl.h",
      "src/objects/js-date-time-format.cc",
      "src/objects/js-date-time-format.h",
      "src/objects/js-list-format-inl.h",
      "src/objects/js-list-format.cc",
      "src/objects/js-list-format.h",
      "src/objects/js-locale-inl.h",
      "src/objects/js-locale.cc",
      "src/objects/js-locale.h",
      "src/objects/js-number-format-inl.h",
      "src/objects/js-number-format.cc",
      "src/objects/js-number-format.h",
      "src/objects/js-plural-rules-inl.h",
      "src/objects/js-plural-rules.cc",
      "src/objects/js-plural-rules.h",
      "src/objects/js-relative-time-format-inl.h",
      "src/objects/js-relative-time-format.cc",
      "src/objects/js-relative-time-format.h",
      "src/objects/js-segment-iterator-inl.h",
      "src/objects/js-segment-iterator.cc",
      "src/objects/js-segment-iterator.h",
      "src/objects/js-segmenter-inl.h",
      "src/objects/js-segmenter.cc",
      "src/objects/js-segmenter.h",
      "src/runtime/runtime-intl.cc",
      "src/strings/char-predicates.cc",
    ]
  }

  if (v8_postmortem_support) {
    sources += [ "$target_gen_dir/debug-support.cc" ]
    deps += [ ":postmortem-metadata" ]
  }

  # Platforms that don't have CAS support need to link atomic library
  # to implement atomic memory access
  if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" ||
      v8_current_cpu == "mips64" || v8_current_cpu == "mips64el" ||
      v8_current_cpu == "ppc" || v8_current_cpu == "ppc64" ||
      v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
    libs = [ "atomic" ]
  }
}

group("v8_base") {
  public_deps = [
    ":v8_base_without_compiler",
    ":v8_compiler",
  ]
}

v8_source_set("torque_base") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  sources = [
    "src/torque/ast.h",
    "src/torque/cfg.cc",
    "src/torque/cfg.h",
    "src/torque/constants.h",
    "src/torque/contextual.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/instructions.cc",
    "src/torque/instructions.h",
    "src/torque/server-data.cc",
    "src/torque/server-data.h",
    "src/torque/source-positions.cc",
    "src/torque/source-positions.h",
    "src/torque/torque-compiler.cc",
    "src/torque/torque-compiler.h",
    "src/torque/torque-parser.cc",
    "src/torque/torque-parser.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",
  ]

  deps = [
    ":v8_shared_internal_headers",
  ]

  public_deps = [
    ":v8_libbase",
  ]

  # The use of exceptions for Torque in violation of the Chromium style-guide
  # is justified by the fact that it is only used from the non-essential
  # language server and can be removed anytime if it causes problems.
  configs = [
    ":internal_config",
    "//build/config/compiler:exceptions",
    "//build/config/compiler:rtti",
  ]

  remove_configs = [
    "//build/config/compiler:no_exceptions",
    "//build/config/compiler:no_rtti",
  ]

  if (is_win && is_asan) {
    # Due to a bug in ASAN on Windows (chromium:893437), we disable ASAN for
    # Torque on Windows.
    remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
  }

  if (is_debug && !v8_optimized_debug && v8_enable_fast_torque) {
    # The :no_optimize config is added to v8_add_configs in v8.gni.
    remove_configs += [ "//build/config/compiler:no_optimize" ]
    configs += [ ":always_optimize" ]
  }
}

v8_source_set("torque_ls_base") {
  sources = [
    "src/torque/ls/globals.h",
    "src/torque/ls/json-parser.cc",
    "src/torque/ls/json-parser.h",
    "src/torque/ls/json.cc",
    "src/torque/ls/json.h",
    "src/torque/ls/message-handler.cc",
    "src/torque/ls/message-handler.h",
    "src/torque/ls/message-macros.h",
    "src/torque/ls/message-pipe.h",
    "src/torque/ls/message.h",
  ]

  public_deps = [
    ":torque_base",
  ]

  # The use of exceptions for Torque in violation of the Chromium style-guide
  # is justified by the fact that it is only used from the non-essential
  # language server and can be removed anytime if it causes problems.
  configs = [
    ":internal_config",
    "//build/config/compiler:exceptions",
    "//build/config/compiler:rtti",
  ]

  remove_configs = [
    "//build/config/compiler:no_exceptions",
    "//build/config/compiler:no_rtti",
  ]

  if (is_win && is_asan) {
    remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
  }
}

v8_component("v8_libbase") {
  sources = [
    "src/base/adapters.h",
    "src/base/address-region.h",
    "src/base/atomic-utils.h",
    "src/base/atomicops.h",
    "src/base/atomicops_internals_atomicword_compat.h",
    "src/base/atomicops_internals_portable.h",
    "src/base/atomicops_internals_std.h",
    "src/base/base-export.h",
    "src/base/bits.cc",
    "src/base/bits.h",
    "src/base/bounded-page-allocator.cc",
    "src/base/bounded-page-allocator.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/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/iterator.h",
    "src/base/lazy-instance.h",
    "src/base/list.h",
    "src/base/logging.cc",
    "src/base/logging.h",
    "src/base/lsan.h",
    "src/base/macros.h",
    "src/base/memory.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/region-allocator.cc",
    "src/base/region-allocator.h",
    "src/base/ring-buffer.h",
    "src/base/safe_conversions.h",
    "src/base/safe_conversions_impl.h",
    "src/base/small-vector.h",
    "src/base/sys-info.cc",
    "src/base/sys-info.h",
    "src/base/template-utils.h",
    "src/base/timezone-cache.h",
    "src/base/type-traits.h",
    "src/base/utils/random-number-generator.cc",
    "src/base/utils/random-number-generator.h",
    "src/base/vlq-base64.cc",
    "src/base/vlq-base64.h",
  ]

  configs = [ ":internal_config_base" ]

  public_configs = [ ":libbase_config" ]

  deps = [
    ":v8_headers",
  ]

  public_deps = []

  data = []

  data_deps = []

  defines = []

  if (is_component_build) {
    defines = [ "BUILDING_V8_BASE_SHARED" ]
  }

  if (is_posix || is_fuchsia) {
    sources += [
      "src/base/platform/platform-posix.cc",
      "src/base/platform/platform-posix.h",
    ]
    if (current_os != "aix") {
      sources += [
        "src/base/platform/platform-posix-time.cc",
        "src/base/platform/platform-posix-time.h",
      ]
    }
  }

  if (is_linux) {
    sources += [
      "src/base/debug/stack_trace_posix.cc",
      "src/base/platform/platform-linux.cc",
    ]

    libs = [
      "dl",
      "rt",
    ]
  } else if (current_os == "aix") {
    sources += [
      "src/base/debug/stack_trace_posix.cc",
      "src/base/platform/platform-aix.cc",
    ]

    libs = [
      "dl",
      "rt",
    ]
  } else if (is_android) {
    if (current_toolchain == host_toolchain) {
      libs = [
        "dl",
        "rt",
      ]
      if (host_os == "mac") {
        sources += [
          "src/base/debug/stack_trace_posix.cc",
          "src/base/platform/platform-macos.cc",
        ]
      } else {
        sources += [
          "src/base/debug/stack_trace_posix.cc",
          "src/base/platform/platform-linux.cc",
        ]
      }
    } else {
      sources += [
        "src/base/debug/stack_trace_android.cc",
        "src/base/platform/platform-linux.cc",
      ]
    }
  } else if (is_fuchsia) {
    sources += [
      "src/base/debug/stack_trace_fuchsia.cc",
      "src/base/platform/platform-fuchsia.cc",
    ]
  } else if (is_mac || is_ios) {
    sources += [
      "src/base/debug/stack_trace_posix.cc",
      "src/base/platform/platform-macos.cc",
    ]
  } else if (is_win) {
    # TODO(jochen): Add support for cygwin.
    sources += [
      "src/base/debug/stack_trace_win.cc",
      "src/base/platform/platform-win32.cc",
      "src/base/win32-headers.h",
    ]

    defines += [ "_CRT_RAND_S" ]  # for rand_s()

    libs = [
      "dbghelp.lib",
      "winmm.lib",
      "ws2_32.lib",
    ]

    data_deps += [ "//build/win:runtime_libs" ]
  }

  if (v8_current_cpu == "mips" || v8_current_cpu == "mips64") {
    # Add runtime libs for mips.
    data += [
      "tools/mips_toolchain/sysroot/usr/lib/",
      "tools/mips_toolchain/mips-mti-linux-gnu/lib",
    ]
  }

  if (is_tsan && !build_with_chromium) {
    data += [ "tools/sanitizers/tsan_suppressions.txt" ]
  }

  # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris.
}

v8_component("v8_libplatform") {
  sources = [
    "//base/trace_event/common/trace_event_common.h",
    "include/libplatform/libplatform-export.h",
    "include/libplatform/libplatform.h",
    "include/libplatform/v8-tracing.h",
    "src/libplatform/default-foreground-task-runner.cc",
    "src/libplatform/default-foreground-task-runner.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/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",
  ]

  configs = [ ":internal_config_base" ]

  if (is_component_build) {
    defines = [ "BUILDING_V8_PLATFORM_SHARED" ]
  }

  public_configs = [ ":libplatform_config" ]

  deps = [
    ":v8_headers",
    ":v8_libbase",
  ]
  if (v8_use_perfetto) {
    sources += [
      "src/libplatform/tracing/json-trace-event-listener.cc",
      "src/libplatform/tracing/json-trace-event-listener.h",
      "src/libplatform/tracing/trace-event-listener.cc",
      "src/libplatform/tracing/trace-event-listener.h",
    ]
    deps += [
      "//third_party/perfetto/protos/perfetto/trace:lite",
      "//third_party/perfetto/protos/perfetto/trace/chrome:minimal_complete_lite",
      "//third_party/perfetto/protos/perfetto/trace/chrome:zero",
      "//third_party/perfetto/src/tracing:client_api",
      "//third_party/perfetto/src/tracing:platform_posix",
    ]
  }
}

v8_source_set("v8_libsampler") {
  sources = [
    "src/libsampler/sampler.cc",
    "src/libsampler/sampler.h",
  ]

  configs = [ ":internal_config" ]

  public_configs = [ ":libsampler_config" ]

  deps = [
    ":v8_libbase",
  ]
}

v8_source_set("fuzzer_support") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  sources = [
    "test/fuzzer/fuzzer-support.cc",
    "test/fuzzer/fuzzer-support.h",
  ]

  configs = [ ":internal_config_base" ]

  deps = [
    ":v8",
  ]

  public_deps = [
    ":v8_libbase",
    ":v8_libplatform",
    ":v8_maybe_icu",
  ]
}

###############################################################################
# Produce a single static library for embedders
#

if (v8_monolithic) {
  # A component build is not monolithic.
  assert(!is_component_build)

  # Using external startup data would produce separate files.
  assert(!v8_use_external_startup_data)
  v8_static_library("v8_monolith") {
    deps = [
      ":v8",
      ":v8_libbase",
      ":v8_libplatform",
      ":v8_libsampler",
      "//build/win:default_exe_manifest",
    ]

    configs = [ ":internal_config" ]
  }
}

v8_static_library("wee8") {
  deps = [
    ":v8_base",
    ":v8_libbase",
    ":v8_libplatform",
    ":v8_libsampler",
    ":v8_maybe_snapshot",
    "//build/win:default_exe_manifest",
  ]

  # TODO: v8dll-main.cc equivalent for shared library builds

  configs = [ ":internal_config" ]

  sources = [
    ### gcmole(all) ###
    "src/wasm/c-api.cc",
    "src/wasm/c-api.h",
    "third_party/wasm-api/wasm.h",
    "third_party/wasm-api/wasm.hh",
  ]
}

###############################################################################
# Executables
#

if (current_toolchain == v8_generator_toolchain) {
  v8_executable("bytecode_builtins_list_generator") {
    visibility = [ ":*" ]  # Only targets in this file can depend on this.

    include_dirs = [ "." ]

    sources = [
      "src/builtins/generate-bytecodes-builtins-list.cc",
      "src/interpreter/bytecode-operands.cc",
      "src/interpreter/bytecode-operands.h",
      "src/interpreter/bytecodes.cc",
      "src/interpreter/bytecodes.h",
    ]

    configs = [ ":internal_config" ]

    deps = [
      ":v8_libbase",
      "//build/win:default_exe_manifest",
    ]
  }
}

if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) {
  v8_executable("mksnapshot") {
    visibility = [ ":*" ]  # Only targets in this file can depend on this.

    sources = [
      "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",
    ]

    configs = [ ":internal_config" ]

    deps = [
      ":v8_base_without_compiler",
      ":v8_compiler_for_mksnapshot",
      ":v8_init",
      ":v8_libbase",
      ":v8_libplatform",
      ":v8_nosnapshot",
      "//build/win:default_exe_manifest",
    ]
  }
}

if (current_toolchain == v8_snapshot_toolchain) {
  v8_executable("torque") {
    visibility = [ ":*" ]  # Only targets in this file can depend on this.

    sources = [
      "src/torque/torque.cc",
    ]

    deps = [
      ":torque_base",
      "//build/win:default_exe_manifest",
    ]

    # The use of exceptions for Torque in violation of the Chromium style-guide
    # is justified by the fact that it is only used from the non-essential
    # language server and can be removed anytime if it causes problems.
    configs = [
      ":internal_config",
      "//build/config/compiler:exceptions",
      "//build/config/compiler:rtti",
    ]

    remove_configs = [
      "//build/config/compiler:no_exceptions",
      "//build/config/compiler:no_rtti",
    ]

    if (is_win && is_asan) {
      remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
    }
  }
}

v8_executable("torque-language-server") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  sources = [
    "src/torque/ls/torque-language-server.cc",
  ]

  deps = [
    ":torque_base",
    ":torque_ls_base",
    "//build/win:default_exe_manifest",
  ]

  # The use of exceptions for Torque in violation of the Chromium style-guide
  # is justified by the fact that it is only used from the non-essential
  # language server and can be removed anytime if it causes problems.
  configs = [
    ":internal_config",
    "//build/config/compiler:exceptions",
    "//build/config/compiler:rtti",
  ]

  remove_configs = [
    "//build/config/compiler:no_exceptions",
    "//build/config/compiler:no_rtti",
  ]

  if (is_win && is_asan) {
    remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
  }
}

if (v8_enable_i18n_support) {
  if (current_toolchain == v8_generator_toolchain) {
    v8_executable("gen-regexp-special-case") {
      visibility = [ ":*" ]  # Only targets in this file can depend on this.

      sources = [
        "src/regexp/gen-regexp-special-case.cc",
      ]

      deps = [
        ":v8_libbase",
        "//build/win:default_exe_manifest",
        "//third_party/icu",
      ]

      configs = [ ":internal_config" ]
    }
  }

  action("run_gen-regexp-special-case") {
    visibility = [ ":*" ]  # Only targets in this file can depend on this.

    script = "tools/run.py"

    sources = v8_extra_library_files

    deps = [
      ":gen-regexp-special-case($v8_generator_toolchain)",
    ]

    output_file = "$target_gen_dir/src/regexp/special-case.cc"

    outputs = [
      output_file,
    ]

    args = [
      "./" + rebase_path(
              get_label_info(
                      ":gen-regexp-special-case($v8_generator_toolchain)",
                      "root_out_dir") + "/gen-regexp-special-case",
              root_build_dir),
      rebase_path(output_file, root_build_dir),
    ]
  }
}

###############################################################################
# Public targets
#

want_v8_shell =
    (current_toolchain == host_toolchain && v8_toolset_for_shell == "host") ||
    (current_toolchain == v8_snapshot_toolchain &&
     v8_toolset_for_shell == "host") ||
    (current_toolchain != host_toolchain && v8_toolset_for_shell == "target")

group("gn_all") {
  testonly = true

  deps = [
    ":d8",
    ":v8_fuzzers",
    ":v8_hello_world",
    ":v8_sample_process",
    "test:gn_all",
    "tools:gn_all",
  ]

  if (v8_custom_deps != "") {
    # Custom dependency from directory under v8/custom_deps.
    deps += [ v8_custom_deps ]
  }

  if (want_v8_shell) {
    deps += [ ":v8_shell" ]
  }
}

group("v8_python_base") {
  data = [
    ".vpython",
  ]
}

group("v8_clusterfuzz") {
  testonly = true

  deps = [
    ":d8",
  ]

  if (v8_multi_arch_build) {
    deps += [
      ":d8(//build/toolchain/linux:clang_x64)",
      ":d8(//build/toolchain/linux:clang_x64_v8_arm64)",
      ":d8(//build/toolchain/linux:clang_x86)",
      ":d8(//build/toolchain/linux:clang_x86_v8_arm)",
    ]
  }
}

group("v8_archive") {
  testonly = true

  deps = [
    ":d8",
  ]

  if (!is_win) {
    # On windows, cctest doesn't link with v8_static_library.
    deps += [ "test/cctest:cctest" ]
  }
}

# TODO(dglazkov): Remove the "!build_with_chromium" condition once this clause
# is removed from Chromium.
if (is_fuchsia && !build_with_chromium) {
  import("//build/config/fuchsia/rules.gni")

  fuchsia_package("d8_fuchsia_pkg") {
    testonly = true
    binary = ":d8"
    package_name_override = "d8"
  }

  fuchsia_package_runner("d8_fuchsia") {
    testonly = true
    package = ":d8_fuchsia_pkg"
    package_name_override = "d8"
  }
}

group("v8_fuzzers") {
  testonly = true
  data_deps = [
    ":v8_simple_json_fuzzer",
    ":v8_simple_multi_return_fuzzer",
    ":v8_simple_parser_fuzzer",
    ":v8_simple_regexp_builtins_fuzzer",
    ":v8_simple_regexp_fuzzer",
    ":v8_simple_wasm_async_fuzzer",
    ":v8_simple_wasm_code_fuzzer",
    ":v8_simple_wasm_compile_fuzzer",
    ":v8_simple_wasm_fuzzer",
  ]
}

if (is_component_build) {
  v8_component("v8") {
    sources = [
      "src/utils/v8dll-main.cc",
    ]

    public_deps = [
      ":v8_base",
      ":v8_maybe_snapshot",
    ]

    configs = [ ":internal_config" ]

    public_configs = [ ":external_config" ]
  }

  v8_component("v8_for_testing") {
    testonly = true

    sources = [
      "src/utils/v8dll-main.cc",
    ]

    public_deps = [
      ":torque_base",
      ":torque_ls_base",
      ":v8_base",
      ":v8_headers",
      ":v8_maybe_snapshot",
    ]

    if (v8_use_snapshot) {
      public_deps += [ ":v8_initializers" ]
    }

    configs = [ ":internal_config" ]

    public_configs = [ ":external_config" ]
  }
} else {
  group("v8") {
    public_deps = [
      ":v8_base",
      ":v8_maybe_snapshot",
    ]

    public_configs = [ ":external_config" ]
  }

  group("v8_for_testing") {
    testonly = true

    public_deps = [
      ":torque_base",
      ":torque_ls_base",
      ":v8_base",
      ":v8_maybe_snapshot",
    ]

    if (v8_use_snapshot) {
      public_deps += [ ":v8_initializers" ]
    }

    public_configs = [ ":external_config" ]
  }
}

v8_executable("d8") {
  sources = [
    "src/d8/async-hooks-wrapper.cc",
    "src/d8/async-hooks-wrapper.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.cc",
    "src/d8/d8.h",
  ]

  configs = [
    # Note: don't use :internal_config here because this target will get
    # the :external_config applied to it by virtue of depending on :v8, and
    # you can't have both applied to the same target.
    ":internal_config_base",
  ]

  deps = [
    ":v8",
    ":v8_libbase",
    ":v8_libplatform",
    "//build/win:default_exe_manifest",
  ]

  if (is_posix || is_fuchsia) {
    sources += [ "src/d8/d8-posix.cc" ]
  } else if (is_win) {
    sources += [ "src/d8/d8-windows.cc" ]
  }

  if (v8_correctness_fuzzer) {
    deps += [ "tools/clusterfuzz:v8_correctness_fuzzer_resources" ]
  }

  defines = []

  if (v8_enable_vtunejit) {
    deps += [ "src/third_party/vtune:v8_vtune" ]
  }

  if (v8_use_perfetto) {
    deps += [ "//third_party/perfetto/include/perfetto/tracing" ]
  }
}

v8_executable("v8_hello_world") {
  sources = [
    "samples/hello-world.cc",
  ]

  configs = [
    # Note: don't use :internal_config here because this target will get
    # the :external_config applied to it by virtue of depending on :v8, and
    # you can't have both applied to the same target.
    ":internal_config_base",
  ]

  deps = [
    ":v8",
    ":v8_libbase",
    ":v8_libplatform",
    "//build/win:default_exe_manifest",
  ]
}

v8_executable("v8_sample_process") {
  sources = [
    "samples/process.cc",
  ]

  configs = [
    # Note: don't use :internal_config here because this target will get
    # the :external_config applied to it by virtue of depending on :v8, and
    # you can't have both applied to the same target.
    ":internal_config_base",
  ]

  deps = [
    ":v8",
    ":v8_libbase",
    ":v8_libplatform",
    "//build/win:default_exe_manifest",
  ]
}

if (want_v8_shell) {
  v8_executable("v8_shell") {
    sources = [
      "samples/shell.cc",
    ]

    configs = [
      # Note: don't use :internal_config here because this target will get
      # the :external_config applied to it by virtue of depending on :v8, and
      # you can't have both applied to the same target.
      ":internal_config_base",
    ]

    deps = [
      ":v8",
      ":v8_libbase",
      ":v8_libplatform",
      "//build/win:default_exe_manifest",
    ]
  }
}

template("v8_fuzzer") {
  name = target_name
  forward_variables_from(invoker, "*")
  v8_executable("v8_simple_" + name) {
    deps = [
      ":" + name,
      "//build/win:default_exe_manifest",
    ]

    sources = [
      "test/fuzzer/fuzzer.cc",
    ]

    configs = [ ":external_config" ]
  }
}

v8_source_set("json_fuzzer") {
  sources = [
    "test/fuzzer/json.cc",
  ]

  deps = [
    ":fuzzer_support",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("json_fuzzer") {
}

v8_source_set("multi_return_fuzzer") {
  sources = [
    "test/fuzzer/multi-return.cc",
  ]

  deps = [
    ":fuzzer_support",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("multi_return_fuzzer") {
}

v8_source_set("parser_fuzzer") {
  sources = [
    "test/fuzzer/parser.cc",
  ]

  deps = [
    ":fuzzer_support",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("parser_fuzzer") {
}

v8_source_set("regexp_builtins_fuzzer") {
  sources = [
    "test/fuzzer/regexp-builtins.cc",
    "test/fuzzer/regexp_builtins/mjsunit.js.h",
  ]

  deps = [
    ":fuzzer_support",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("regexp_builtins_fuzzer") {
}

v8_source_set("regexp_fuzzer") {
  sources = [
    "test/fuzzer/regexp.cc",
  ]

  deps = [
    ":fuzzer_support",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("regexp_fuzzer") {
}

v8_source_set("wasm_module_runner") {
  sources = [
    "test/common/wasm/wasm-module-runner.cc",
    "test/common/wasm/wasm-module-runner.h",
  ]

  deps = [
    ":generate_bytecode_builtins_list",
    ":run_torque",
  ]

  public_deps = [
    ":v8_maybe_icu",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_source_set("wasm_fuzzer") {
  sources = [
    "test/fuzzer/wasm.cc",
  ]

  deps = [
    ":fuzzer_support",
    ":lib_wasm_fuzzer_common",
    ":wasm_module_runner",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("wasm_fuzzer") {
}

v8_source_set("wasm_async_fuzzer") {
  sources = [
    "test/fuzzer/wasm-async.cc",
  ]

  deps = [
    ":fuzzer_support",
    ":lib_wasm_fuzzer_common",
    ":wasm_module_runner",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("wasm_async_fuzzer") {
}

v8_source_set("wasm_code_fuzzer") {
  sources = [
    "test/common/wasm/test-signatures.h",
    "test/fuzzer/wasm-code.cc",
  ]

  deps = [
    ":fuzzer_support",
    ":lib_wasm_fuzzer_common",
    ":wasm_module_runner",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("wasm_code_fuzzer") {
}

v8_source_set("lib_wasm_fuzzer_common") {
  sources = [
    "test/fuzzer/wasm-fuzzer-common.cc",
    "test/fuzzer/wasm-fuzzer-common.h",
  ]

  deps = [
    ":generate_bytecode_builtins_list",
    ":run_torque",
  ]

  public_deps = [
    ":v8_maybe_icu",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_source_set("wasm_compile_fuzzer") {
  sources = [
    "test/common/wasm/test-signatures.h",
    "test/fuzzer/wasm-compile.cc",
  ]

  deps = [
    ":fuzzer_support",
    ":lib_wasm_fuzzer_common",
    ":wasm_module_runner",
  ]

  configs = [
    ":external_config",
    ":internal_config_base",
  ]
}

v8_fuzzer("wasm_compile_fuzzer") {
}

# Target to build all generated .cc files.
group("v8_generated_cc_files") {
  testonly = true

  deps = [
    ":generate_bytecode_builtins_list",
    ":js2c_extras",
    ":run_torque",
    "src/inspector:v8_generated_cc_files",
  ]
}

# Protobuf targets, used only when building outside of chromium.

if (!build_with_chromium && v8_use_perfetto) {
  # This config is applied to the autogenerated .pb.{cc,h} files in
  # proto_library.gni. This config is propagated up to the source sets
  # that depend on generated proto headers.
  config("protobuf_gen_config") {
    defines = [
      "GOOGLE_PROTOBUF_NO_RTTI",
      "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
    ]
    cflags = [
      "-Wno-unknown-warning-option",
      "-Wno-deprecated",
      "-Wno-undef",
      "-Wno-zero-as-null-pointer-constant",
      "-Wno-thread-safety-attributes",
    ]
    include_dirs = [ "third_party/protobuf/src" ]
  }

  # Configuration used to build libprotobuf_* and the protoc compiler.
  config("protobuf_config") {
    # Apply the lighter supressions and macro definitions from above.
    configs = [ ":protobuf_gen_config" ]

    if (!is_win) {
      defines = [ "HAVE_PTHREAD=1" ]
    }
    if (is_clang) {
      cflags = [
        "-Wno-unused-private-field",
        "-Wno-unused-function",
        "-Wno-inconsistent-missing-override",
        "-Wno-unknown-warning-option",
        "-Wno-enum-compare-switch",
        "-Wno-user-defined-warnings",
        "-Wno-tautological-constant-compare",
      ]
    }
    if (is_win) {
      cflags += [ "-Wno-microsoft-unqualified-friend" ]
    }
  }

  source_set("protobuf_lite") {
    sources = [
      "third_party/protobuf/src/google/protobuf/any_lite.cc",
      "third_party/protobuf/src/google/protobuf/arena.cc",
      "third_party/protobuf/src/google/protobuf/extension_set.cc",
      "third_party/protobuf/src/google/protobuf/generated_message_table_driven_lite.cc",
      "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
      "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
      "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
      "third_party/protobuf/src/google/protobuf/io/strtod.cc",
      "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
      "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
      "third_party/protobuf/src/google/protobuf/message_lite.cc",
      "third_party/protobuf/src/google/protobuf/repeated_field.cc",
      "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
      "third_party/protobuf/src/google/protobuf/stubs/common.cc",
      "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
      "third_party/protobuf/src/google/protobuf/stubs/io_win32.cc",
      "third_party/protobuf/src/google/protobuf/stubs/status.cc",
      "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
      "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
      "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
      "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
      "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
      "third_party/protobuf/src/google/protobuf/stubs/time.cc",
      "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
    ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [
      "//build/config/compiler:no_chromium_code",
      ":protobuf_config",
    ]
    if (is_win) {
      configs -= [ "//build/config/win:lean_and_mean" ]
    }
    public_configs = [ ":protobuf_gen_config" ]
  }

  # This target should be used only by the protoc compiler and by test targets.
  source_set("protobuf_full") {
    deps = [
      ":protobuf_lite",
    ]
    sources = [
      "third_party/protobuf/src/google/protobuf/any.cc",
      "third_party/protobuf/src/google/protobuf/any.pb.cc",
      "third_party/protobuf/src/google/protobuf/api.pb.cc",
      "third_party/protobuf/src/google/protobuf/compiler/importer.cc",
      "third_party/protobuf/src/google/protobuf/compiler/parser.cc",
      "third_party/protobuf/src/google/protobuf/descriptor.cc",
      "third_party/protobuf/src/google/protobuf/descriptor.pb.cc",
      "third_party/protobuf/src/google/protobuf/descriptor_database.cc",
      "third_party/protobuf/src/google/protobuf/duration.pb.cc",
      "third_party/protobuf/src/google/protobuf/dynamic_message.cc",
      "third_party/protobuf/src/google/protobuf/empty.pb.cc",
      "third_party/protobuf/src/google/protobuf/extension_set_heavy.cc",
      "third_party/protobuf/src/google/protobuf/field_mask.pb.cc",
      "third_party/protobuf/src/google/protobuf/generated_message_reflection.cc",
      "third_party/protobuf/src/google/protobuf/generated_message_table_driven.cc",
      "third_party/protobuf/src/google/protobuf/io/gzip_stream.cc",
      "third_party/protobuf/src/google/protobuf/io/printer.cc",
      "third_party/protobuf/src/google/protobuf/io/tokenizer.cc",
      "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
      "third_party/protobuf/src/google/protobuf/map_field.cc",
      "third_party/protobuf/src/google/protobuf/message.cc",
      "third_party/protobuf/src/google/protobuf/reflection_ops.cc",
      "third_party/protobuf/src/google/protobuf/service.cc",
      "third_party/protobuf/src/google/protobuf/source_context.pb.cc",
      "third_party/protobuf/src/google/protobuf/struct.pb.cc",
      "third_party/protobuf/src/google/protobuf/stubs/mathlimits.cc",
      "third_party/protobuf/src/google/protobuf/stubs/substitute.cc",
      "third_party/protobuf/src/google/protobuf/text_format.cc",
      "third_party/protobuf/src/google/protobuf/timestamp.pb.cc",
      "third_party/protobuf/src/google/protobuf/type.pb.cc",
      "third_party/protobuf/src/google/protobuf/unknown_field_set.cc",
      "third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc",
      "third_party/protobuf/src/google/protobuf/util/field_comparator.cc",
      "third_party/protobuf/src/google/protobuf/util/field_mask_util.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/datapiece.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/error_listener.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/json_escaping.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/object_writer.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/proto_writer.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/type_info.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/type_info_test_helper.cc",
      "third_party/protobuf/src/google/protobuf/util/internal/utility.cc",
      "third_party/protobuf/src/google/protobuf/util/json_util.cc",
      "third_party/protobuf/src/google/protobuf/util/message_differencer.cc",
      "third_party/protobuf/src/google/protobuf/util/time_util.cc",
      "third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc",
      "third_party/protobuf/src/google/protobuf/wire_format.cc",
      "third_party/protobuf/src/google/protobuf/wrappers.pb.cc",
    ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [
      "//build/config/compiler:no_chromium_code",
      ":protobuf_config",
    ]
    if (is_win) {
      configs -= [ "//build/config/win:lean_and_mean" ]
    }
    public_configs = [ ":protobuf_gen_config" ]
  }

  if (current_toolchain == host_toolchain) {
    source_set("protoc_lib") {
      deps = [
        ":protobuf_full",
      ]
      sources = [
        "third_party/protobuf/src/google/protobuf/compiler/code_generator.cc",
        "third_party/protobuf/src/google/protobuf/compiler/command_line_interface.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
        "third_party/protobuf/src/google/protobuf/compiler/plugin.cc",
        "third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc",
        "third_party/protobuf/src/google/protobuf/compiler/subprocess.cc",
        "third_party/protobuf/src/google/protobuf/compiler/zip_writer.cc",
      ]
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        "//build/config/compiler:no_chromium_code",
        ":protobuf_config",
      ]
      if (is_win) {
        configs -= [ "//build/config/win:lean_and_mean" ]
      }
      public_configs = [ ":protobuf_gen_config" ]
    }

    executable("protoc") {
      deps = [
        ":protoc_lib",
        "//build/win:default_exe_manifest",
      ]
      sources = [
        "src/protobuf/protobuf-compiler-main.cc",
      ]
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [ "//build/config/compiler:no_chromium_code" ]
    }
  }  # host_toolchain
}  # if (!build_with_chromium && v8_use_perfetto)
