# 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/v8.gni")
import("snapshot_toolchain.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 = true

  # Enable slow dchecks.
  v8_enable_slow_dchecks = false

  # Enable fast mksnapshot runs.
  v8_enable_fast_mksnapshot = false

  # Enable embedded builtins.
  v8_enable_embedded_builtins = true

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

  # Build-time flag for enabling nojit mode.
  # TODO(v8:7777): Remove the build-time flag once the --jitless runtime flag
  # does everything we need.
  v8_enable_jitless_mode = false

  # 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

  # Interpreted regexp engine exists as platform-independent alternative
  # based where the regular expression is compiled to a bytecode.
  v8_interpreted_regexp = 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

  # 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" ]

  # Like v8_extra_library_files but for experimental features.
  #
  # This default is used by cctests. Projects using V8 will want to override.
  v8_experimental_extra_library_files =
      [ "//test/cctest/test-experimental-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

  # 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
}

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

assert(!v8_enable_jitless_mode || v8_enable_embedded_builtins,
       "JIT-less mode requires embedded builtins")
assert(!v8_enable_jitless_mode || v8_use_snapshot,
       "JIT-less mode requires a snapshot build")

v8_random_seed = "314159265"
v8_toolset_for_shell = "host"

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

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

  configs = [ "//build/config/compiler:wexit_time_destructors" ]

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

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

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

# 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 = []
  if (is_component_build) {
    defines += [ "USING_V8_SHARED" ]
  }
  if (v8_enable_v8_checks) {
    defines += [ "V8_ENABLE_CHECKS" ]  # Used in "include/v8.h".
  }
  if (v8_deprecation_warnings) {
    defines += [ "V8_DEPRECATION_WARNINGS" ]
  }
  if (v8_imminent_deprecation_warnings) {
    defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ]
  }
  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" ]
  }
}

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

  defines = []

  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_future) {
    defines += [ "V8_ENABLE_FUTURE" ]
  }
  if (v8_enable_lite_mode) {
    defines += [ "V8_LITE_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_pointer_compression) {
    defines += [ "V8_COMPRESS_POINTERS" ]
  }
  if (v8_enable_31bit_smis_on_64bit_arch) {
    defines += [ "V8_31BIT_SMIS_ON_64BIT_ARCH" ]
  }
  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" ]
  }
  if (v8_enable_v8_checks) {
    defines += [ "V8_ENABLE_CHECKS" ]
  }
  if (v8_interpreted_regexp || v8_enable_lite_mode) {
    defines += [ "V8_INTERPRETED_REGEXP" ]
  }
  if (v8_deprecation_warnings) {
    defines += [ "V8_DEPRECATION_WARNINGS" ]
  }
  if (v8_imminent_deprecation_warnings) {
    defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ]
  }
  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_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_enable_jitless_mode) {
    defines += [ "V8_JITLESS_MODE" ]
  }
  if (v8_use_multi_snapshots) {
    defines += [ "V8_MULTI_SNAPSHOTS" ]
  }
}

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) {
    cflags += [
      "-fno-inline-functions",
      "-fno-inline",
    ]
  }

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

      # TODO(hans): Remove once http://crbug.com/428099 is resolved.
      "-Winconsistent-missing-override",
    ]

    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",
    ]
  }
}

# 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") {
  visibility = [ ":*" ]  # Only targets in this file can depend on this.

  script = "tools/js2c.py"

  # The script depends on this other script, this rule causes a rebuild if it
  # changes.
  inputs = [
    "tools/jsmin.py",
  ]

  # NOSORT
  sources = [
    "src/js/macros.py",
    "src/message-template.h",
    "src/js/prologue.js",
  ]

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

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

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

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

  script = "tools/js2c.py"

  # The script depends on this other script, this rule causes a rebuild if it
  # changes.
  inputs = [
    "tools/jsmin.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),
    ]
  }
}

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

  script = "tools/js2c.py"

  # The script depends on this other script, this rule causes a rebuild if it
  # changes.
  inputs = [
    "tools/jsmin.py",
  ]

  sources = v8_experimental_extra_library_files

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

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

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

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

  script = "tools/js2c.py"

  # NOSORT
  inputs = [
    "src/d8.js",
    "src/js/macros.py",
  ]

  outputs = [
    "$target_gen_dir/d8-js.cc",
  ]

  args = rebase_path(outputs, root_build_dir) + [ "D8" ] +
         rebase_path(inputs, 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",
      ":js2c_experimental_extras",
      ":js2c_extras",
    ]

    # NOSORT
    sources = [
      "$target_gen_dir/libraries.bin",
      "$target_gen_dir/libraries_extras.bin",
      "$target_gen_dir/libraries_experimental_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.h",
    "src/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-inl.h",
    "src/objects/name.h",
    "src/objects/name-inl.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.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/base.tq",
  "src/builtins/frames.tq",
  "src/builtins/arguments.tq",
  "src/builtins/array.tq",
  "src/builtins/array-copywithin.tq",
  "src/builtins/array-foreach.tq",
  "src/builtins/array-join.tq",
  "src/builtins/array-lastindexof.tq",
  "src/builtins/array-of.tq",
  "src/builtins/array-reverse.tq",
  "src/builtins/array-slice.tq",
  "src/builtins/array-splice.tq",
  "src/builtins/array-unshift.tq",
  "src/builtins/collections.tq",
  "src/builtins/data-view.tq",
  "src/builtins/object.tq",
  "src/builtins/object-fromentries.tq",
  "src/builtins/iterator.tq",
  "src/builtins/typed-array.tq",
  "test/torque/test-torque.tq",
  "third_party/v8/builtins/array-sort.tq",
]

torque_namespaces = [
  "base",
  "arguments",
  "array",
  "collections",
  "iterator",
  "object",
  "typed-array",
  "data-view",
  "test",
]

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-from-dsl.h",
  ]
  foreach(namespace, torque_namespaces) {
    outputs += [
      "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc",
      "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.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),
  ]

  foreach(file, torque_files) {
    args += [ rebase_path(file, root_build_dir) ]
  }
}

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

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

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

  sources = []
  foreach(namespace, torque_namespaces) {
    sources += [
      "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc",
      "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.h",
    ]
  }

  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",
    ]

    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_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
  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_component_build=$is_component_build",
    "is_debug=$v8_enable_debugging_features",
    "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_jitless_mode=$v8_enable_jitless_mode",
    "v8_enable_verify_csa=$v8_enable_verify_csa",
    "v8_enable_lite_mode=$v8_enable_lite_mode",
  ]

  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",
    ":js2c_experimental_extras",
    ":js2c_extras",
    ":v8_base",
  ]

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

  if (use_jumbo_build == true) {
    jumbo_excluded_sources = [
      # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428
      # Generated source, contains same variable names as libraries.cc
      "$target_gen_dir/experimental-extras-libraries.cc",
      "$target_gen_dir/libraries.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",
      ":js2c_experimental_extras",
      ":js2c_extras",
      ":v8_base",
    ]
    public_deps = [
      # This should be public so downstream targets can declare the snapshot
      # output file as their inputs.
      ":run_mksnapshot_default",
    ]

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

    sources = [
      "$target_gen_dir/experimental-extras-libraries.cc",
      "$target_gen_dir/extras-libraries.cc",
      "$target_gen_dir/libraries.cc",
      "$target_gen_dir/snapshot.cc",
      "src/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-empty.cc" ]
    }

    if (use_jumbo_build == true) {
      jumbo_excluded_sources = [
        # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428
        # Generated source, contains same variable names as libraries.cc
        "$target_gen_dir/experimental-extras-libraries.cc",
        "$target_gen_dir/libraries.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",
      ":js2c_experimental_extras",
      ":js2c_extras",
      ":v8_base",
    ]
    public_deps = [
      ":natives_blob",
      ":run_mksnapshot_default",
    ]

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

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

        if (use_jumbo_build == true) {
          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" ]

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

    configs = [ ":internal_config" ]
  }
}

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

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

  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-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/code-stub-assembler.cc",
    "src/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",
  ]

  if (use_jumbo_build == true) {
    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/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/setup-isolate-full.cc",
  ]
  if (v8_enable_i18n_support) {
    public_deps = [
      "//third_party/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" ]

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

  if (is_linux || is_mac) {
    sources += [ "include/v8-wasm-trap-handler-posix.h" ]
  }

  if (is_win) {
    sources += [ "include/v8-wasm-trap-handler-win.h" ]
  }

  deps = [
    ":v8_version",
  ]
}

v8_source_set("v8_base") {
  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/accessors.cc",
    "src/accessors.h",
    "src/address-map.cc",
    "src/address-map.h",
    "src/allocation-site-scopes-inl.h",
    "src/allocation-site-scopes.h",
    "src/allocation.cc",
    "src/allocation.h",
    "src/api-arguments-inl.h",
    "src/api-arguments.cc",
    "src/api-arguments.h",
    "src/api-natives.cc",
    "src/api-natives.h",
    "src/api.cc",
    "src/api.h",
    "src/arguments-inl.h",
    "src/arguments.cc",
    "src/arguments.h",
    "src/asan.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/assembler-arch-inl.h",
    "src/assembler-arch.h",
    "src/assembler-inl.h",
    "src/assembler.cc",
    "src/assembler.h",
    "src/assert-scope.cc",
    "src/assert-scope.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/variables.cc",
    "src/ast/variables.h",
    "src/bailout-reason.cc",
    "src/bailout-reason.h",
    "src/basic-block-profiler.cc",
    "src/basic-block-profiler.h",
    "src/bignum-dtoa.cc",
    "src/bignum-dtoa.h",
    "src/bignum.cc",
    "src/bignum.h",
    "src/bit-vector.cc",
    "src/bit-vector.h",
    "src/bootstrapper.cc",
    "src/bootstrapper.h",
    "src/boxed-float.h",
    "src/builtins/builtins-api.cc",
    "src/builtins/builtins-array.cc",
    "src/builtins/builtins-arraybuffer.cc",
    "src/builtins/builtins-bigint.cc",
    "src/builtins/builtins-boolean.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-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/cached-powers.cc",
    "src/cached-powers.h",
    "src/callable.h",
    "src/cancelable-task.cc",
    "src/cancelable-task.h",
    "src/char-predicates-inl.h",
    "src/char-predicates.cc",
    "src/char-predicates.h",
    "src/checks.h",
    "src/code-comments.cc",
    "src/code-comments.h",
    "src/code-events.h",
    "src/code-factory.cc",
    "src/code-factory.h",
    "src/code-reference.cc",
    "src/code-reference.h",
    "src/code-tracer.h",
    "src/codegen.cc",
    "src/codegen.h",
    "src/collector.h",
    "src/compilation-cache.cc",
    "src/compilation-cache.h",
    "src/compilation-statistics.cc",
    "src/compilation-statistics.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/compiler.cc",
    "src/compiler.h",
    "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/dead-code-elimination.cc",
    "src/compiler/dead-code-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/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/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/type-cache.cc",
    "src/compiler/type-cache.h",
    "src/compiler/type-narrowing-reducer.cc",
    "src/compiler/type-narrowing-reducer.h",
    "src/compiler/typed-optimization.cc",
    "src/compiler/typed-optimization.h",
    "src/compiler/typer.cc",
    "src/compiler/typer.h",
    "src/compiler/types.cc",
    "src/compiler/types.h",
    "src/compiler/value-numbering-reducer.cc",
    "src/compiler/value-numbering-reducer.h",
    "src/compiler/verifier.cc",
    "src/compiler/verifier.h",
    "src/compiler/wasm-compiler.cc",
    "src/compiler/wasm-compiler.h",
    "src/compiler/zone-stats.cc",
    "src/compiler/zone-stats.h",
    "src/constant-pool.cc",
    "src/constant-pool.h",
    "src/constants-arch.h",
    "src/contexts-inl.h",
    "src/contexts.cc",
    "src/contexts.h",
    "src/conversions-inl.h",
    "src/conversions.cc",
    "src/conversions.h",
    "src/counters-inl.h",
    "src/counters.cc",
    "src/counters.h",
    "src/cpu-features.h",
    "src/date.cc",
    "src/date.h",
    "src/dateparser-inl.h",
    "src/dateparser.cc",
    "src/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/deoptimize-reason.cc",
    "src/deoptimize-reason.h",
    "src/deoptimizer.cc",
    "src/deoptimizer.h",
    "src/detachable-vector.cc",
    "src/detachable-vector.h",
    "src/disasm.h",
    "src/disassembler.cc",
    "src/disassembler.h",
    "src/diy-fp.cc",
    "src/diy-fp.h",
    "src/double.h",
    "src/dtoa.cc",
    "src/dtoa.h",
    "src/eh-frame.cc",
    "src/eh-frame.h",
    "src/elements-inl.h",
    "src/elements-kind.cc",
    "src/elements-kind.h",
    "src/elements.cc",
    "src/elements.h",
    "src/execution.cc",
    "src/execution.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/external-reference-table.cc",
    "src/external-reference-table.h",
    "src/external-reference.cc",
    "src/external-reference.h",
    "src/fast-dtoa.cc",
    "src/fast-dtoa.h",
    "src/feedback-vector-inl.h",
    "src/feedback-vector.cc",
    "src/feedback-vector.h",
    "src/field-index-inl.h",
    "src/field-index.h",
    "src/field-type.cc",
    "src/field-type.h",
    "src/fixed-dtoa.cc",
    "src/fixed-dtoa.h",
    "src/flag-definitions.h",
    "src/flags.cc",
    "src/flags.h",
    "src/frame-constants.h",
    "src/frames-inl.h",
    "src/frames.cc",
    "src/frames.h",
    "src/futex-emulation.cc",
    "src/futex-emulation.h",
    "src/gdb-jit.cc",
    "src/gdb-jit.h",
    "src/global-handles.cc",
    "src/global-handles.h",
    "src/globals.h",
    "src/handler-table.cc",
    "src/handler-table.h",
    "src/handles-inl.h",
    "src/handles.cc",
    "src/handles.h",
    "src/heap-symbols.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/code-stats.cc",
    "src/heap/code-stats.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/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/icu_util.cc",
    "src/icu_util.h",
    "src/identity-map.cc",
    "src/identity-map.h",
    "src/interface-descriptors.cc",
    "src/interface-descriptors.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/isolate-allocator.cc",
    "src/isolate-allocator.h",
    "src/isolate-data.h",
    "src/isolate-inl.h",
    "src/isolate.cc",
    "src/isolate.h",
    "src/json-parser.cc",
    "src/json-parser.h",
    "src/json-stringifier.cc",
    "src/json-stringifier.h",
    "src/keys.cc",
    "src/keys.h",
    "src/label.h",
    "src/layout-descriptor-inl.h",
    "src/layout-descriptor.cc",
    "src/layout-descriptor.h",
    "src/locked-queue-inl.h",
    "src/locked-queue.h",
    "src/log-inl.h",
    "src/log-utils.cc",
    "src/log-utils.h",
    "src/log.cc",
    "src/log.h",
    "src/lookup-cache-inl.h",
    "src/lookup-cache.cc",
    "src/lookup-cache.h",
    "src/lookup-inl.h",
    "src/lookup.cc",
    "src/lookup.h",
    "src/machine-type.cc",
    "src/machine-type.h",
    "src/macro-assembler-inl.h",
    "src/macro-assembler.h",
    "src/map-updater.cc",
    "src/map-updater.h",
    "src/math-random.cc",
    "src/math-random.h",
    "src/maybe-handles-inl.h",
    "src/maybe-handles.h",
    "src/memcopy.cc",
    "src/memcopy.h",
    "src/message-template.h",
    "src/messages.cc",
    "src/messages.h",
    "src/microtask-queue.cc",
    "src/microtask-queue.h",
    "src/msan.h",
    "src/objects-body-descriptors-inl.h",
    "src/objects-body-descriptors.h",
    "src/objects-debug.cc",
    "src/objects-inl.h",
    "src/objects-printer.cc",
    "src/objects.cc",
    "src/objects.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/builtin-function-id.h",
    "src/objects/cell-inl.h",
    "src/objects/cell.h",
    "src/objects/code-inl.h",
    "src/objects/code.h",
    "src/objects/compilation-cache-inl.h",
    "src/objects/compilation-cache.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/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/fixed-array-inl.h",
    "src/objects/fixed-array.h",
    "src/objects/frame-array-inl.h",
    "src/objects/frame-array.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.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.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/literal-objects-inl.h",
    "src/objects/literal-objects.cc",
    "src/objects/literal-objects.h",
    "src/objects/managed.cc",
    "src/objects/managed.h",
    "src/objects/map-inl.h",
    "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-macros-undef.h",
    "src/objects/object-macros.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/prototype-info-inl.h",
    "src/objects/prototype-info.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/stack-frame-info-inl.h",
    "src/objects/stack-frame-info.h",
    "src/objects/string-inl.h",
    "src/objects/string-table-inl.h",
    "src/objects/string-table.h",
    "src/objects/string.h",
    "src/objects/struct-inl.h",
    "src/objects/struct.h",
    "src/objects/template-objects.cc",
    "src/objects/template-objects.h",
    "src/objects/templates-inl.h",
    "src/objects/templates.h",
    "src/optimized-compilation-info.cc",
    "src/optimized-compilation-info.h",
    "src/ostreams.cc",
    "src/ostreams.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/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/pattern-rewriter.cc",
    "src/parsing/preparsed-scope-data-impl.h",
    "src/parsing/preparsed-scope-data.cc",
    "src/parsing/preparsed-scope-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/pending-compilation-error-handler.cc",
    "src/pending-compilation-error-handler.h",
    "src/perf-jit.cc",
    "src/perf-jit.h",
    "src/pointer-with-payload.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/profiler/unbound-queue-inl.h",
    "src/profiler/unbound-queue.h",
    "src/property-descriptor.cc",
    "src/property-descriptor.h",
    "src/property-details.h",
    "src/property.cc",
    "src/property.h",
    "src/prototype.h",
    "src/ptr-compr-inl.h",
    "src/ptr-compr.h",
    "src/regexp/bytecodes-irregexp.h",
    "src/regexp/interpreter-irregexp.cc",
    "src/regexp/interpreter-irregexp.h",
    "src/regexp/jsregexp-inl.h",
    "src/regexp/jsregexp.cc",
    "src/regexp/jsregexp.h",
    "src/regexp/property-sequences.cc",
    "src/regexp/property-sequences.h",
    "src/regexp/regexp-ast.cc",
    "src/regexp/regexp-ast.h",
    "src/regexp/regexp-macro-assembler-irregexp-inl.h",
    "src/regexp/regexp-macro-assembler-irregexp.cc",
    "src/regexp/regexp-macro-assembler-irregexp.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-parser.cc",
    "src/regexp/regexp-parser.h",
    "src/regexp/regexp-stack.cc",
    "src/regexp/regexp-stack.h",
    "src/regexp/regexp-utils.cc",
    "src/regexp/regexp-utils.h",
    "src/register-configuration.cc",
    "src/register-configuration.h",
    "src/reglist.h",
    "src/reloc-info.cc",
    "src/reloc-info.h",
    "src/roots-inl.h",
    "src/roots.cc",
    "src/roots.h",
    "src/runtime-profiler.cc",
    "src/runtime-profiler.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/safepoint-table.cc",
    "src/safepoint-table.h",
    "src/setup-isolate.h",
    "src/signature.h",
    "src/simulator-base.cc",
    "src/simulator-base.h",
    "src/simulator.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-data.cc",
    "src/snapshot/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/source-position-table.cc",
    "src/source-position-table.h",
    "src/source-position.cc",
    "src/source-position.h",
    "src/splay-tree-inl.h",
    "src/splay-tree.h",
    "src/startup-data-util.cc",
    "src/startup-data-util.h",
    "src/string-builder-inl.h",
    "src/string-builder.cc",
    "src/string-case.cc",
    "src/string-case.h",
    "src/string-constants.cc",
    "src/string-constants.h",
    "src/string-hasher-inl.h",
    "src/string-hasher.h",
    "src/string-search.h",
    "src/string-stream.cc",
    "src/string-stream.h",
    "src/strtod.cc",
    "src/strtod.h",
    "src/task-utils.cc",
    "src/task-utils.h",
    "src/third_party/utf8-decoder/utf8-decoder.h",
    "src/thread-id.cc",
    "src/thread-id.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/transitions-inl.h",
    "src/transitions.cc",
    "src/transitions.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/turbo-assembler.cc",
    "src/turbo-assembler.h",
    "src/type-hints.cc",
    "src/type-hints.h",
    "src/unicode-cache.h",
    "src/unicode-decoder.cc",
    "src/unicode-decoder.h",
    "src/unicode-inl.h",
    "src/unicode.cc",
    "src/unicode.h",
    "src/unoptimized-compilation-info.cc",
    "src/unoptimized-compilation-info.h",
    "src/unwinder.cc",
    "src/uri.cc",
    "src/uri.h",
    "src/utils-inl.h",
    "src/utils.cc",
    "src/utils.h",
    "src/v8.cc",
    "src/v8.h",
    "src/v8memory.h",
    "src/v8threads.cc",
    "src/v8threads.h",
    "src/value-serializer.cc",
    "src/value-serializer.h",
    "src/vector-slot-pair.cc",
    "src/vector-slot-pair.h",
    "src/vector.h",
    "src/version.cc",
    "src/version.h",
    "src/visitors.cc",
    "src/visitors.h",
    "src/vm-state-inl.h",
    "src/vm-state.h",
    "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/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-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-inl.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
  }

  if (use_jumbo_build == true) {
    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.cc",
      "src/elements.cc",
      "src/heap/heap.cc",
      "src/objects.cc",
      "src/parsing/parser.cc",
    ]
  }

  if (v8_current_cpu == "x86") {
    sources += [  ### gcmole(arch:ia32) ###
      "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/ia32/assembler-ia32-inl.h",
      "src/ia32/assembler-ia32.cc",
      "src/ia32/assembler-ia32.h",
      "src/ia32/codegen-ia32.cc",
      "src/ia32/constants-ia32.h",
      "src/ia32/cpu-ia32.cc",
      "src/ia32/deoptimizer-ia32.cc",
      "src/ia32/disasm-ia32.cc",
      "src/ia32/frame-constants-ia32.cc",
      "src/ia32/frame-constants-ia32.h",
      "src/ia32/interface-descriptors-ia32.cc",
      "src/ia32/macro-assembler-ia32.cc",
      "src/ia32/macro-assembler-ia32.h",
      "src/ia32/simulator-ia32.cc",
      "src/ia32/simulator-ia32.h",
      "src/ia32/sse-instr.h",
      "src/regexp/ia32/regexp-macro-assembler-ia32.cc",
      "src/regexp/ia32/regexp-macro-assembler-ia32.h",
      "src/wasm/baseline/ia32/liftoff-assembler-ia32.h",
    ]
  } else if (v8_current_cpu == "x64") {
    sources += [  ### gcmole(arch:x64) ###
      "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/regexp/x64/regexp-macro-assembler-x64.cc",
      "src/regexp/x64/regexp-macro-assembler-x64.h",
      "src/third_party/valgrind/valgrind.h",
      "src/wasm/baseline/x64/liftoff-assembler-x64.h",
      "src/x64/assembler-x64-inl.h",
      "src/x64/assembler-x64.cc",
      "src/x64/assembler-x64.h",
      "src/x64/codegen-x64.cc",
      "src/x64/constants-x64.h",
      "src/x64/cpu-x64.cc",
      "src/x64/deoptimizer-x64.cc",
      "src/x64/disasm-x64.cc",
      "src/x64/eh-frame-x64.cc",
      "src/x64/frame-constants-x64.cc",
      "src/x64/frame-constants-x64.h",
      "src/x64/interface-descriptors-x64.cc",
      "src/x64/macro-assembler-x64.cc",
      "src/x64/macro-assembler-x64.h",
      "src/x64/simulator-x64.cc",
      "src/x64/simulator-x64.h",
      "src/x64/sse-instr.h",
    ]
    if (is_linux || is_mac) {
      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/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/arm/assembler-arm-inl.h",
      "src/arm/assembler-arm.cc",
      "src/arm/assembler-arm.h",
      "src/arm/codegen-arm.cc",
      "src/arm/constants-arm.cc",
      "src/arm/constants-arm.h",
      "src/arm/cpu-arm.cc",
      "src/arm/deoptimizer-arm.cc",
      "src/arm/disasm-arm.cc",
      "src/arm/eh-frame-arm.cc",
      "src/arm/frame-constants-arm.cc",
      "src/arm/frame-constants-arm.h",
      "src/arm/interface-descriptors-arm.cc",
      "src/arm/macro-assembler-arm.cc",
      "src/arm/macro-assembler-arm.h",
      "src/arm/simulator-arm.cc",
      "src/arm/simulator-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/regexp/arm/regexp-macro-assembler-arm.cc",
      "src/regexp/arm/regexp-macro-assembler-arm.h",
      "src/wasm/baseline/arm/liftoff-assembler-arm.h",
    ]
  } else if (v8_current_cpu == "arm64") {
    sources += [  ### gcmole(arch:arm64) ###
      "src/arm64/assembler-arm64-inl.h",
      "src/arm64/assembler-arm64.cc",
      "src/arm64/assembler-arm64.h",
      "src/arm64/codegen-arm64.cc",
      "src/arm64/constants-arm64.h",
      "src/arm64/cpu-arm64.cc",
      "src/arm64/decoder-arm64-inl.h",
      "src/arm64/decoder-arm64.cc",
      "src/arm64/decoder-arm64.h",
      "src/arm64/deoptimizer-arm64.cc",
      "src/arm64/disasm-arm64.cc",
      "src/arm64/disasm-arm64.h",
      "src/arm64/eh-frame-arm64.cc",
      "src/arm64/frame-constants-arm64.cc",
      "src/arm64/frame-constants-arm64.h",
      "src/arm64/instructions-arm64-constants.cc",
      "src/arm64/instructions-arm64.cc",
      "src/arm64/instructions-arm64.h",
      "src/arm64/instrument-arm64.cc",
      "src/arm64/instrument-arm64.h",
      "src/arm64/interface-descriptors-arm64.cc",
      "src/arm64/macro-assembler-arm64-inl.h",
      "src/arm64/macro-assembler-arm64.cc",
      "src/arm64/macro-assembler-arm64.h",
      "src/arm64/simulator-arm64.cc",
      "src/arm64/simulator-arm64.h",
      "src/arm64/simulator-logic-arm64.cc",
      "src/arm64/utils-arm64.cc",
      "src/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/regexp/arm64/regexp-macro-assembler-arm64.cc",
      "src/regexp/arm64/regexp-macro-assembler-arm64.h",
      "src/wasm/baseline/arm64/liftoff-assembler-arm64.h",
    ]
    if (use_jumbo_build) {
      jumbo_excluded_sources += [
        # TODO(mostynb@vewd.com): fix this code so it doesn't need
        # to be excluded, see the comments inside.
        "src/arm64/instructions-arm64-constants.cc",
      ]
    }
  } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
    sources += [  ### gcmole(arch:mipsel) ###
      "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/mips/assembler-mips-inl.h",
      "src/mips/assembler-mips.cc",
      "src/mips/assembler-mips.h",
      "src/mips/codegen-mips.cc",
      "src/mips/constants-mips.cc",
      "src/mips/constants-mips.h",
      "src/mips/cpu-mips.cc",
      "src/mips/deoptimizer-mips.cc",
      "src/mips/disasm-mips.cc",
      "src/mips/frame-constants-mips.cc",
      "src/mips/frame-constants-mips.h",
      "src/mips/interface-descriptors-mips.cc",
      "src/mips/macro-assembler-mips.cc",
      "src/mips/macro-assembler-mips.h",
      "src/mips/simulator-mips.cc",
      "src/mips/simulator-mips.h",
      "src/regexp/mips/regexp-macro-assembler-mips.cc",
      "src/regexp/mips/regexp-macro-assembler-mips.h",
      "src/wasm/baseline/mips/liftoff-assembler-mips.h",
    ]
  } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
    sources += [  ### gcmole(arch:mips64el) ###
      "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/mips64/assembler-mips64-inl.h",
      "src/mips64/assembler-mips64.cc",
      "src/mips64/assembler-mips64.h",
      "src/mips64/codegen-mips64.cc",
      "src/mips64/constants-mips64.cc",
      "src/mips64/constants-mips64.h",
      "src/mips64/cpu-mips64.cc",
      "src/mips64/deoptimizer-mips64.cc",
      "src/mips64/disasm-mips64.cc",
      "src/mips64/frame-constants-mips64.cc",
      "src/mips64/frame-constants-mips64.h",
      "src/mips64/interface-descriptors-mips64.cc",
      "src/mips64/macro-assembler-mips64.cc",
      "src/mips64/macro-assembler-mips64.h",
      "src/mips64/simulator-mips64.cc",
      "src/mips64/simulator-mips64.h",
      "src/regexp/mips64/regexp-macro-assembler-mips64.cc",
      "src/regexp/mips64/regexp-macro-assembler-mips64.h",
      "src/wasm/baseline/mips64/liftoff-assembler-mips64.h",
    ]
  } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
    sources += [  ### gcmole(arch:ppc) ###
      "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/ppc/assembler-ppc-inl.h",
      "src/ppc/assembler-ppc.cc",
      "src/ppc/assembler-ppc.h",
      "src/ppc/code-stubs-ppc.cc",
      "src/ppc/codegen-ppc.cc",
      "src/ppc/constants-ppc.cc",
      "src/ppc/constants-ppc.h",
      "src/ppc/cpu-ppc.cc",
      "src/ppc/deoptimizer-ppc.cc",
      "src/ppc/disasm-ppc.cc",
      "src/ppc/frame-constants-ppc.cc",
      "src/ppc/frame-constants-ppc.h",
      "src/ppc/interface-descriptors-ppc.cc",
      "src/ppc/macro-assembler-ppc.cc",
      "src/ppc/macro-assembler-ppc.h",
      "src/ppc/simulator-ppc.cc",
      "src/ppc/simulator-ppc.h",
      "src/regexp/ppc/regexp-macro-assembler-ppc.cc",
      "src/regexp/ppc/regexp-macro-assembler-ppc.h",
      "src/wasm/baseline/ppc/liftoff-assembler-ppc.h",
    ]
  } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
    sources += [  ### gcmole(arch:s390) ###
      "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/regexp/s390/regexp-macro-assembler-s390.cc",
      "src/regexp/s390/regexp-macro-assembler-s390.h",
      "src/s390/assembler-s390-inl.h",
      "src/s390/assembler-s390.cc",
      "src/s390/assembler-s390.h",
      "src/s390/code-stubs-s390.cc",
      "src/s390/codegen-s390.cc",
      "src/s390/constants-s390.cc",
      "src/s390/constants-s390.h",
      "src/s390/cpu-s390.cc",
      "src/s390/deoptimizer-s390.cc",
      "src/s390/disasm-s390.cc",
      "src/s390/frame-constants-s390.cc",
      "src/s390/frame-constants-s390.h",
      "src/s390/interface-descriptors-s390.cc",
      "src/s390/macro-assembler-s390.cc",
      "src/s390/macro-assembler-s390.h",
      "src/s390/simulator-s390.cc",
      "src/s390/simulator-s390.h",
      "src/wasm/baseline/s390/liftoff-assembler-s390.h",
    ]
  }

  configs = [ ":internal_config" ]

  defines = []
  deps = [
    ":generate_bytecode_builtins_list",
    ":run_torque",
    ":v8_headers",
    ":v8_libbase",
    ":v8_libsampler",
    "src/inspector:inspector",
  ]

  if (v8_enable_i18n_support) {
    public_deps = [
      "//third_party/icu",
    ]
    if (is_win) {
      deps += [ "//third_party/icu:icudata" ]
    }
  } else {
    sources -= [
      "src/builtins/builtins-intl.cc",
      "src/char-predicates.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",
    ]
  }

  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" ]
  }
}

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/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/file-visitor.cc",
    "src/torque/file-visitor.h",
    "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/source-positions.cc",
    "src/torque/source-positions.h",
    "src/torque/torque-parser.cc",
    "src/torque/torque-parser.h",
    "src/torque/type-oracle.cc",
    "src/torque/type-oracle.h",
    "src/torque/types.cc",
    "src/torque/types.h",
    "src/torque/utils.cc",
    "src/torque/utils.h",
  ]

  deps = [
    ":v8_libbase",
  ]

  configs = [ ":internal_config" ]
  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/export-template.h",
    "src/base/file-utils.cc",
    "src/base/file-utils.h",
    "src/base/flags.h",
    "src/base/format-macros.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-page-allocator.cc",
    "src/base/lsan-page-allocator.h",
    "src/base/macros.h",
    "src/base/once.cc",
    "src/base/once.h",
    "src/base/optional.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/safe_math.h",
    "src/base/safe_math_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/tsan.h",
    "src/base/utils/random-number-generator.cc",
    "src/base/utils/random-number-generator.h",
  ]

  configs = [ ":internal_config_base" ]

  public_configs = [ ":libbase_config" ]

  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) {
    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",
      "shlwapi.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/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_libbase",
  ]
}

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

  configs = [ ":internal_config_base" ]

  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",
  ]

  if (v8_enable_i18n_support) {
    public_deps += [ "//third_party/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" ]
  }
}

###############################################################################
# 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-file-writer.cc",
      "src/snapshot/embedded-file-writer.h",
      "src/snapshot/mksnapshot.cc",
    ]

    configs = [ ":internal_config" ]

    deps = [
      ":v8_base",
      ":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",
    ]

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

###############################################################################
# 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_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_data_section_fuzzer",
    ":v8_simple_wasm_function_sigs_section_fuzzer",
    ":v8_simple_wasm_fuzzer",
    ":v8_simple_wasm_globals_section_fuzzer",
    ":v8_simple_wasm_imports_section_fuzzer",
    ":v8_simple_wasm_memory_section_fuzzer",
    ":v8_simple_wasm_names_section_fuzzer",
    ":v8_simple_wasm_types_section_fuzzer",
  ]
}

if (is_component_build) {
  v8_component("v8") {
    sources = [
      "src/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/v8dll-main.cc",
    ]

    public_deps = [
      ":torque_base",
      ":v8_base",
      ":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",
      ":v8_base",
      ":v8_maybe_snapshot",
    ]

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

    public_configs = [ ":external_config" ]
  }
}

v8_executable("d8") {
  sources = [
    "$target_gen_dir/d8-js.cc",
    "src/async-hooks-wrapper.cc",
    "src/async-hooks-wrapper.h",
    "src/d8-console.cc",
    "src/d8-console.h",
    "src/d8-platforms.cc",
    "src/d8-platforms.h",
    "src/d8.cc",
    "src/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 = [
    ":d8_js2c",
    ":v8",
    ":v8_libbase",
    ":v8_libplatform",
    "//build/win:default_exe_manifest",
  ]

  if (is_posix || is_fuchsia) {
    sources += [ "src/d8-posix.cc" ]
  } else if (is_win) {
    sources += [ "src/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" ]
  }
}

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",
  ]

  if (v8_enable_i18n_support) {
    public_deps = [
      "//third_party/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",
  ]

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

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

v8_source_set("wasm_types_section_fuzzer") {
  sources = [
    "test/fuzzer/wasm-types-section.cc",
  ]

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

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

v8_fuzzer("wasm_types_section_fuzzer") {
}

v8_source_set("wasm_names_section_fuzzer") {
  sources = [
    "test/fuzzer/wasm-names-section.cc",
  ]

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

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

v8_fuzzer("wasm_names_section_fuzzer") {
}

v8_source_set("wasm_globals_section_fuzzer") {
  sources = [
    "test/fuzzer/wasm-globals-section.cc",
  ]

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

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

v8_fuzzer("wasm_globals_section_fuzzer") {
}

v8_source_set("wasm_imports_section_fuzzer") {
  sources = [
    "test/fuzzer/wasm-imports-section.cc",
  ]

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

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

v8_fuzzer("wasm_imports_section_fuzzer") {
}

v8_source_set("wasm_function_sigs_section_fuzzer") {
  sources = [
    "test/fuzzer/wasm-function-sigs-section.cc",
  ]

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

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

v8_fuzzer("wasm_function_sigs_section_fuzzer") {
}

v8_source_set("wasm_memory_section_fuzzer") {
  sources = [
    "test/fuzzer/wasm-memory-section.cc",
  ]

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

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

v8_fuzzer("wasm_memory_section_fuzzer") {
}

v8_source_set("wasm_data_section_fuzzer") {
  sources = [
    "test/fuzzer/wasm-data-section.cc",
  ]

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

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

v8_fuzzer("wasm_data_section_fuzzer") {
}

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 = [
    ":d8_js2c",
    ":generate_bytecode_builtins_list",
    ":js2c",
    ":js2c_experimental_extras",
    ":js2c_extras",
    ":run_torque",
    "src/inspector:v8_generated_cc_files",
    "test/cctest:v8_generated_cc_files",
  ]
}
