v8 0.79.2

Rust bindings to V8
Documentation
# This file is used by the GN meta build system to find the root of the source
# tree and to set startup options. For documentation on the values set in this
# file, run "gn help dotfile" at the command line.

# The location of the build configuration file.
buildconfig = "//build/config/BUILDCONFIG.gn"

# These are the targets to check headers for by default. The files in targets
# matching these patterns (see "gn help label_pattern" for format) will have
# their includes checked for proper dependencies when you run either
# "gn check" or "gn gen --check".
check_targets = []

# The secondary source root is a parallel directory tree where
# GN build files are placed when they can not be placed directly
# in the source tree, e.g. for third party source trees.
secondary_source = "//v8/"

default_args = {
  clang_use_chrome_plugins = false
  is_component_build = false
  linux_use_bundled_binutils = false
  use_dummy_lastchange = true
  use_sysroot = false
  win_crt_flavor_agnostic = true

  # Minimize size of debuginfo in distributed static library.
  line_tables_only = true
  no_inline_line_tables = true
  symbol_level = 1
  use_debug_fission = false

  v8_enable_sandbox = false
  v8_enable_snapshot_compression = false
  v8_enable_javascript_promise_hooks = true
  v8_promise_internal_field_count = 1
  v8_use_external_startup_data = false
  v8_use_snapshot = true

  # Disable handle zapping for performance
  v8_enable_handle_zapping = false
  # Ensure allocation of typed arrays and arraybuffers always goes through
  # the embedder's ArrayBufferAllocator, otherwise small buffers get moved
  # around by the garbage collector but embedders normally want them to have
  # fixed addresses.
  v8_typed_array_max_size_in_heap = 0

  # Enabling the shared read-only heap comes with a restriction that all
  # isolates running at the same time must be created from the same snapshot.
  # This is problematic for Deno, which has separate "runtime" and "typescript
  # compiler" snapshots, and sometimes uses them both at the same time.
  v8_enable_shared_ro_heap = false

  # V8 11.6 hardcoded an assumption in `mksnapshot` that shared RO heap
  # is enabled. In our case it's disabled so without this flag we can't
  # compile.
  v8_enable_verify_heap = false

  # V8 introduced a bug in 11.1 that causes the External Pointer Table to never
  # be cleaned which causes resource exhaustion. Disabling pointer compression
  # makes sure that the EPT is not used.
  # https://bugs.chromium.org/p/v8/issues/detail?id=13640&q=garbage%20collection&can=2
  v8_enable_pointer_compression = false

  # Maglev *should* be supported when pointer compression is disabled as per
  # https://chromium-review.googlesource.com/c/v8/v8/+/4753150, but it still
  # fails to compile.
  v8_enable_maglev = false
}