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

import("//build/config/v8_target_cpu.gni")

if (((v8_current_cpu == "x86" || v8_current_cpu == "x64" ||
      v8_current_cpu == "x87") && (is_linux || is_mac)) ||
    (v8_current_cpu == "ppc64" && is_linux)) {
  v8_enable_gdbjit_default = true
}

v8_imminent_deprecation_warnings_default = true

# Add simple extras solely for the purpose of the cctests.
v8_extra_library_files = [ "//test/cctest/test-extra.js" ]
v8_experimental_extra_library_files =
    [ "//test/cctest/test-experimental-extra.js" ]

v8_enable_inspector_override = true
