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

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.
  # TODO(v8:6666): Support no-snapshot builds, aix and MSVC.
  v8_enable_embedded_builtins =
      v8_use_snapshot && !is_aix && (!is_win || is_clang)

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

  # Build the snapshot with unwinding information for perf.
  # Sets -dV8_USE_SNAPSHOT_WITH_UNWINDING_INFO.
  v8_perf_prof_unwinding_info = false

  # 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_enable_embedded_builtins || v8_use_snapshot,
       "Embedded builtins only work with snapshots")
assert(
    v8_current_cpu != "x86" || !v8_enable_embedded_builtins ||
        !v8_untrusted_code_mitigations,
    "Embedded builtins on ia32 and untrusted code mitigations are incompatible")

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) {
    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_perf_prof_unwinding_info) {
      defines += [ "V8_USE_SNAPSHOT_WITH_UNWINDING_INFO" ]
    }
  }
  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",
      "V8_EMBEDDED_BYTECODE_HANDLERS",
    ]
  }
  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
#

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",
    "src/js/array.js",
    "src/js/typedarray.js",
  ]

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

  if (v8_enable_i18n_support) {
    sources += [ "src/js/intl.js" ]
  }

  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/code-inl.h",
    "src/objects/code.h",
    "src/objects/data-handler.h",
    "src/objects/data-handler-inl.h",
    "src/objects/fixed-array-inl.h",
    "src/objects/fixed-array.h",
    "src/objects/heap-object-inl.h",
    "src/objects/heap-object.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",
  ]

  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/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/typed-array.tq",
  "src/builtins/data-view.tq",
  "src/builtins/iterator.tq",
  "test/torque/test-torque.tq",
  "third_party/v8/builtins/array-sort.tq",
]

torque_modules = [
  "base",
  "array",
  "iterator",
  "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(module, torque_modules) {
    outputs += [
      "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.cc",
      "$target_gen_dir/torque-generated/builtins-$module-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(module, torque_modules) {
    sources += [
      "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.cc",
      "$target_gen_dir/torque-generated/builtins-$module-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"),
  ]
}

# 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>.cc 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}.cc" ]
      args += [
        "--embedded_src",
        rebase_path("$target_gen_dir/embedded${suffix}.cc", 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_perf_prof_unwinding_info) {
      args += [ "--perf-prof-unwinding-info" ]
    }

    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_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 (v8_use_multi_snapshots) {
    run_mksnapshot("trusted") {
      args = [ "--no-untrusted-code-mitigations" ]
      if (v8_enable_embedded_builtins) {
        embedded_variant = "Trusted"
      }
    }
  }
}

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_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) {
      sources += [ "$target_gen_dir/embedded.cc" ]
    } 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) {
      sources += [ "$target_gen_dir/embedded.cc" ]

      if (v8_use_multi_snapshots) {
        sources += [ "$target_gen_dir/embedded_trusted.cc" ]

        if (use_jumbo_build == true) {
          jumbo_excluded_sources = [
            # Duplicated symbols with embedded.cc
            "$target_gen_dir/embedded_trusted.cc",
          ]
        }
      }
    } 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-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-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/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",

      # This source file takes an unusually large amount of time to
      # compile.  Build it separately to avoid bottlenecks.
      "src/builtins/builtins-regexp-gen.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) {
    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/asmjs/switch-logic.cc",
    "src/asmjs/switch-logic.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/context-slot-cache.cc",
    "src/ast/context-slot-cache.h",
    "src/ast/modules.cc",
    "src/ast/modules.h",
    "src/ast/prettyprinter.cc",
    "src/ast/prettyprinter.h",
    "src/ast/scopes-inl.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-interpreter.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-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-events.h",
    "src/code-factory.cc",
    "src/code-factory.h",
    "src/code-reference.cc",
    "src/code-reference.h",
    "src/code-stub-assembler.cc",
    "src/code-stub-assembler.h",
    "src/code-stubs-utils.h",
    "src/code-stubs.cc",
    "src/code-stubs.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/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/code-generator-impl.h",
    "src/compiler/code-generator.cc",
    "src/compiler/code-generator.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-elider.cc",
    "src/compiler/frame-elider.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/gap-resolver.cc",
    "src/compiler/gap-resolver.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/instruction-codes.h",
    "src/compiler/instruction-scheduler.cc",
    "src/compiler/instruction-scheduler.h",
    "src/compiler/instruction-selector-impl.h",
    "src/compiler/instruction-selector.cc",
    "src/compiler/instruction-selector.h",
    "src/compiler/instruction.cc",
    "src/compiler/instruction.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/jump-threading.cc",
    "src/compiler/jump-threading.h",
    "src/compiler/linkage.cc",
    "src/compiler/linkage.h",
    "src/compiler/live-range-separator.cc",
    "src/compiler/live-range-separator.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/move-optimizer.cc",
    "src/compiler/move-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/register-allocator-verifier.cc",
    "src/compiler/register-allocator-verifier.h",
    "src/compiler/register-allocator.cc",
    "src/compiler/register-allocator.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/unwinding-info-writer.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/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.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.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/instruction-stream.cc",
    "src/instruction-stream.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/lsan.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/message-template.h",
    "src/messages.cc",
    "src/messages.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/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.h",
    "src/objects/dictionary.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-object-inl.h",
    "src/objects/heap-object.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-queue-inl.h",
    "src/objects/microtask-queue.cc",
    "src/objects/microtask-queue.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-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.h",
    "src/objects/string.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-classifier.h",
    "src/parsing/expression-scope-reparenter.cc",
    "src/parsing/expression-scope-reparenter.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/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/default-deserializer-allocator.cc",
    "src/snapshot/default-deserializer-allocator.h",
    "src/snapshot/default-serializer-allocator.cc",
    "src/snapshot/default-serializer-allocator.h",
    "src/snapshot/deserializer.cc",
    "src/snapshot/deserializer.h",
    "src/snapshot/macros.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-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/third_party/utf8-decoder/utf8-decoder.h",
    "src/thread-id.cc",
    "src/thread-id.h",
    "src/torque-assembler.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-inl.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/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/code-stub-assembler.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/ia32/code-generator-ia32.cc",
      "src/compiler/ia32/instruction-codes-ia32.h",
      "src/compiler/ia32/instruction-scheduler-ia32.cc",
      "src/compiler/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/code-stubs-ia32.cc",
      "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/x64/code-generator-x64.cc",
      "src/compiler/x64/instruction-codes-x64.h",
      "src/compiler/x64/instruction-scheduler-x64.cc",
      "src/compiler/x64/instruction-selector-x64.cc",
      "src/compiler/x64/unwinding-info-writer-x64.cc",
      "src/compiler/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/code-stubs-x64.cc",
      "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) {
      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/code-stubs-arm.cc",
      "src/arm/code-stubs-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/arm/code-generator-arm.cc",
      "src/compiler/arm/instruction-codes-arm.h",
      "src/compiler/arm/instruction-scheduler-arm.cc",
      "src/compiler/arm/instruction-selector-arm.cc",
      "src/compiler/arm/unwinding-info-writer-arm.cc",
      "src/compiler/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/code-stubs-arm64.cc",
      "src/arm64/code-stubs-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/arm64/code-generator-arm64.cc",
      "src/compiler/arm64/instruction-codes-arm64.h",
      "src/compiler/arm64/instruction-scheduler-arm64.cc",
      "src/compiler/arm64/instruction-selector-arm64.cc",
      "src/compiler/arm64/unwinding-info-writer-arm64.cc",
      "src/compiler/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/mips/code-generator-mips.cc",
      "src/compiler/mips/instruction-codes-mips.h",
      "src/compiler/mips/instruction-scheduler-mips.cc",
      "src/compiler/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/code-stubs-mips.cc",
      "src/mips/code-stubs-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/mips64/code-generator-mips64.cc",
      "src/compiler/mips64/instruction-codes-mips64.h",
      "src/compiler/mips64/instruction-scheduler-mips64.cc",
      "src/compiler/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/code-stubs-mips64.cc",
      "src/mips64/code-stubs-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/ppc/code-generator-ppc.cc",
      "src/compiler/ppc/instruction-codes-ppc.h",
      "src/compiler/ppc/instruction-scheduler-ppc.cc",
      "src/compiler/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/code-stubs-ppc.h",
      "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/s390/code-generator-s390.cc",
      "src/compiler/s390/instruction-codes-s390.h",
      "src/compiler/s390/instruction-scheduler-s390.cc",
      "src/compiler/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/code-stubs-s390.h",
      "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/scope.cc",
    "src/torque/scope.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/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 (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/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") {
  deps = [
    ":d8",
  ]
}

# 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") {
}
