Home | History | Annotate | Download | only in v8
      1 # Copyright 2014 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import("//build/config/android/config.gni")
      6 import("//build/config/arm.gni")
      7 import("//build/config/mips.gni")
      8 import("//build/config/sanitizers/sanitizers.gni")
      9 
     10 if (is_android) {
     11   import("//build/config/android/rules.gni")
     12 }
     13 
     14 # Because standalone V8 builds are not supported, assume this is part of a
     15 # Chromium build.
     16 import("//build_overrides/v8.gni")
     17 
     18 import("snapshot_toolchain.gni")
     19 
     20 declare_args() {
     21   # Enable the snapshot feature, for fast context creation.
     22   # http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html
     23   v8_use_snapshot = true
     24 }
     25 
     26 # TODO(jochen): These will need to be user-settable to support standalone V8
     27 # builds.
     28 v8_deprecation_warnings = false
     29 v8_enable_disassembler = false
     30 v8_enable_gdbjit = false
     31 v8_enable_handle_zapping = true
     32 v8_enable_i18n_support = true
     33 v8_enable_verify_heap = false
     34 v8_interpreted_regexp = false
     35 v8_object_print = false
     36 v8_postmortem_support = false
     37 v8_random_seed = "314159265"
     38 v8_toolset_for_d8 = "host"
     39 
     40 if (is_msan) {
     41   # Running the V8-generated code on an ARM simulator is a powerful hack that
     42   # allows the tool to see the memory accesses from JITted code. Without this
     43   # flag, JS code causes false positive reports from MSan.
     44   v8_target_arch = "arm64"
     45 } else {
     46   v8_target_arch = target_cpu
     47 }
     48 
     49 ###############################################################################
     50 # Configurations
     51 #
     52 config("internal_config") {
     53   visibility = [ ":*" ]  # Only targets in this file can depend on this.
     54 
     55   include_dirs = [ "." ]
     56 
     57   if (is_component_build) {
     58     defines = [
     59       "V8_SHARED",
     60       "BUILDING_V8_SHARED",
     61     ]
     62   }
     63 }
     64 
     65 config("internal_config_base") {
     66   visibility = [ ":*" ]  # Only targets in this file can depend on this.
     67 
     68   include_dirs = [ "." ]
     69 }
     70 
     71 # This config should only be applied to code using V8 and not any V8 code
     72 # itself.
     73 config("external_config") {
     74   if (is_component_build) {
     75     defines = [
     76       "V8_SHARED",
     77       "USING_V8_SHARED",
     78     ]
     79   }
     80   include_dirs = [ "include" ]
     81 }
     82 
     83 # This config should only be applied to code that needs to be explicitly
     84 # aware of whether we are using startup data or not.
     85 config("external_startup_data") {
     86   if (v8_use_external_startup_data) {
     87     defines = [ "V8_USE_EXTERNAL_STARTUP_DATA" ]
     88   }
     89 }
     90 
     91 config("features") {
     92   visibility = [ ":*" ]  # Only targets in this file can depend on this.
     93 
     94   defines = []
     95 
     96   if (v8_enable_disassembler == true) {
     97     defines += [ "ENABLE_DISASSEMBLER" ]
     98   }
     99   if (v8_enable_gdbjit == true) {
    100     defines += [ "ENABLE_GDB_JIT_INTERFACE" ]
    101   }
    102   if (v8_object_print == true) {
    103     defines += [ "OBJECT_PRINT" ]
    104   }
    105   if (v8_enable_verify_heap == true) {
    106     defines += [ "VERIFY_HEAP" ]
    107   }
    108   if (v8_interpreted_regexp == true) {
    109     defines += [ "V8_INTERPRETED_REGEXP" ]
    110   }
    111   if (v8_deprecation_warnings == true) {
    112     defines += [ "V8_DEPRECATION_WARNINGS" ]
    113   }
    114   if (v8_enable_i18n_support == true) {
    115     defines += [ "V8_I18N_SUPPORT" ]
    116   }
    117   if (v8_enable_handle_zapping == true) {
    118     defines += [ "ENABLE_HANDLE_ZAPPING" ]
    119   }
    120   if (v8_use_external_startup_data == true) {
    121     defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ]
    122   }
    123 }
    124 
    125 config("toolchain") {
    126   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    127 
    128   defines = []
    129   cflags = []
    130 
    131   # TODO(jochen): Add support for arm subarchs, mips, mipsel, mips64el.
    132 
    133   if (v8_target_arch == "arm") {
    134     defines += [ "V8_TARGET_ARCH_ARM" ]
    135     if (current_cpu == "arm") {
    136       if (arm_version == 7) {
    137         defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ]
    138       }
    139       if (arm_fpu == "vfpv3-d16") {
    140         defines += [ "CAN_USE_VFP3_INSTRUCTIONS" ]
    141       } else if (arm_fpu == "vfpv3") {
    142         defines += [
    143           "CAN_USE_VFP3_INSTRUCTIONS",
    144           "CAN_USE_VFP32DREGS",
    145         ]
    146       } else if (arm_fpu == "neon") {
    147         defines += [
    148           "CAN_USE_VFP3_INSTRUCTIONS",
    149           "CAN_USE_VFP32DREGS",
    150           "CAN_USE_NEON",
    151         ]
    152       }
    153     } else {
    154       # These defines ares used for the ARM simulator.
    155       defines += [
    156         "CAN_USE_ARMV7_INSTRUCTIONS",
    157         "CAN_USE_VFP3_INSTRUCTIONS",
    158         "CAN_USE_VFP32DREGS",
    159         "USE_EABI_HARDFLOAT=0",
    160       ]
    161     }
    162 
    163     # TODO(jochen): Add support for arm_test_noprobe.
    164   }
    165   if (v8_target_arch == "arm64") {
    166     defines += [ "V8_TARGET_ARCH_ARM64" ]
    167   }
    168   if (v8_target_arch == "mipsel") {
    169     defines += [ "V8_TARGET_ARCH_MIPS" ]
    170   }
    171   if (v8_target_arch == "mips64el") {
    172     defines += [ "V8_TARGET_ARCH_MIPS64" ]
    173   }
    174   if (v8_target_arch == "s390") {
    175     defines += [ "V8_TARGET_ARCH_S390" ]
    176   } 
    177   if (v8_target_arch == "s390x") {
    178     defines += [
    179       "V8_TARGET_ARCH_S390",
    180       "V8_TARGET_ARCH_S390X",
    181     ]
    182   }
    183   if (v8_target_arch == "x86") {
    184     defines += [ "V8_TARGET_ARCH_IA32" ]
    185   }
    186   if (v8_target_arch == "x64") {
    187     defines += [ "V8_TARGET_ARCH_X64" ]
    188   }
    189      
    190   if (is_win) {
    191     defines += [ "WIN32" ]
    192     # TODO(jochen): Support v8_enable_prof.
    193   }
    194 
    195   # TODO(jochen): Add support for compiling with simulators.
    196 
    197   if (is_debug) {
    198     # TODO(jochen): Add support for different debug optimization levels.
    199     defines += [
    200       "ENABLE_DISASSEMBLER",
    201       "V8_ENABLE_CHECKS",
    202       "OBJECT_PRINT",
    203       "VERIFY_HEAP",
    204       "DEBUG",
    205       "OPTIMIZED_DEBUG",
    206     ]
    207   }
    208 }
    209 
    210 ###############################################################################
    211 # Actions
    212 #
    213 
    214 action("js2c") {
    215   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    216 
    217   script = "tools/js2c.py"
    218 
    219   # The script depends on this other script, this rule causes a rebuild if it
    220   # changes.
    221   inputs = [ "tools/jsmin.py" ]
    222 
    223   sources = [
    224     "src/js/macros.py",
    225     "src/messages.h",
    226     "src/js/prologue.js",
    227     "src/js/runtime.js",
    228     "src/js/v8natives.js",
    229     "src/js/symbol.js",
    230     "src/js/array.js",
    231     "src/js/string.js",
    232     "src/js/uri.js",
    233     "src/js/math.js",
    234     "src/third_party/fdlibm/fdlibm.js",
    235     "src/js/regexp.js",
    236     "src/js/arraybuffer.js",
    237     "src/js/typedarray.js",
    238     "src/js/iterator-prototype.js",
    239     "src/js/generator.js",
    240     "src/js/object-observe.js",
    241     "src/js/collection.js",
    242     "src/js/weak-collection.js",
    243     "src/js/collection-iterator.js",
    244     "src/js/promise.js",
    245     "src/js/messages.js",
    246     "src/js/json.js",
    247     "src/js/array-iterator.js",
    248     "src/js/string-iterator.js",
    249     "src/js/templates.js",
    250     "src/js/spread.js",
    251     "src/debug/mirrors.js",
    252     "src/debug/debug.js",
    253     "src/debug/liveedit.js",
    254   ]
    255 
    256   outputs = [
    257     "$target_gen_dir/libraries.cc",
    258   ]
    259 
    260   if (v8_enable_i18n_support) {
    261     sources += [ "src/js/i18n.js" ]
    262   }
    263 
    264   args = [
    265            rebase_path("$target_gen_dir/libraries.cc", root_build_dir),
    266            "CORE",
    267          ] + rebase_path(sources, root_build_dir)
    268 
    269   if (v8_use_external_startup_data) {
    270     outputs += [ "$target_gen_dir/libraries.bin" ]
    271     args += [
    272       "--startup_blob",
    273       rebase_path("$target_gen_dir/libraries.bin", root_build_dir),
    274     ]
    275   }
    276 }
    277 
    278 action("js2c_experimental") {
    279   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    280 
    281   script = "tools/js2c.py"
    282 
    283   # The script depends on this other script, this rule causes a rebuild if it
    284   # changes.
    285   inputs = [ "tools/jsmin.py" ]
    286 
    287   sources = [
    288     "src/js/macros.py",
    289     "src/messages.h",
    290     "src/js/proxy.js",
    291     "src/js/generator.js",
    292     "src/js/harmony-atomics.js",
    293     "src/js/harmony-regexp.js",
    294     "src/js/harmony-reflect.js",
    295     "src/js/harmony-object-observe.js",
    296     "src/js/harmony-sharedarraybuffer.js",
    297     "src/js/harmony-simd.js",
    298     "src/js/harmony-species.js",
    299     "src/js/harmony-unicode-regexps.js",
    300     "src/js/promise-extra.js"
    301   ]
    302 
    303   outputs = [
    304     "$target_gen_dir/experimental-libraries.cc",
    305   ]
    306 
    307   args = [
    308            rebase_path("$target_gen_dir/experimental-libraries.cc",
    309                        root_build_dir),
    310            "EXPERIMENTAL",
    311          ] + rebase_path(sources, root_build_dir)
    312 
    313   if (v8_use_external_startup_data) {
    314     outputs += [ "$target_gen_dir/libraries_experimental.bin" ]
    315     args += [
    316       "--startup_blob",
    317       rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir),
    318     ]
    319   }
    320 }
    321 
    322 action("js2c_extras") {
    323   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    324 
    325   script = "tools/js2c.py"
    326 
    327   # The script depends on this other script, this rule causes a rebuild if it
    328   # changes.
    329   inputs = [ "tools/jsmin.py" ]
    330 
    331   sources = v8_extra_library_files
    332 
    333   outputs = [
    334     "$target_gen_dir/extras-libraries.cc",
    335   ]
    336 
    337   args = [
    338            rebase_path("$target_gen_dir/extras-libraries.cc",
    339                        root_build_dir),
    340            "EXTRAS",
    341          ] + rebase_path(sources, root_build_dir)
    342 
    343   if (v8_use_external_startup_data) {
    344     outputs += [ "$target_gen_dir/libraries_extras.bin" ]
    345     args += [
    346       "--startup_blob",
    347       rebase_path("$target_gen_dir/libraries_extras.bin", root_build_dir),
    348     ]
    349   }
    350 }
    351 
    352 action("js2c_experimental_extras") {
    353   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    354 
    355   script = "tools/js2c.py"
    356 
    357   # The script depends on this other script, this rule causes a rebuild if it
    358   # changes.
    359   inputs = [ "tools/jsmin.py" ]
    360 
    361   sources = v8_experimental_extra_library_files
    362 
    363   outputs = [
    364     "$target_gen_dir/experimental-extras-libraries.cc",
    365   ]
    366 
    367   args = [
    368            rebase_path("$target_gen_dir/experimental-extras-libraries.cc",
    369                        root_build_dir),
    370            "EXPERIMENTAL_EXTRAS",
    371          ] + rebase_path(sources, root_build_dir)
    372 
    373   if (v8_use_external_startup_data) {
    374     outputs += [ "$target_gen_dir/libraries_experimental_extras.bin" ]
    375     args += [
    376       "--startup_blob",
    377       rebase_path("$target_gen_dir/libraries_experimental_extras.bin", root_build_dir),
    378     ]
    379   }
    380 }
    381 
    382 action("d8_js2c") {
    383   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    384 
    385   script = "tools/js2c.py"
    386 
    387   inputs = [
    388     "src/d8.js",
    389     "src/js/macros.py",
    390   ]
    391 
    392   outputs = [
    393     "$target_gen_dir/d8-js.cc",
    394   ]
    395 
    396   args = rebase_path(outputs, root_build_dir) + [ "D8" ] +
    397          rebase_path(inputs, root_build_dir)
    398 }
    399 
    400 if (is_android) {
    401   android_assets("v8_external_startup_data_assets") {
    402     if (v8_use_external_startup_data) {
    403       deps = [
    404         "//v8",
    405       ]
    406       renaming_sources = v8_external_startup_data_renaming_sources
    407       renaming_destinations = v8_external_startup_data_renaming_destinations
    408       disable_compression = true
    409     }
    410   }
    411 }
    412 
    413 if (v8_use_external_startup_data) {
    414   action("natives_blob") {
    415     visibility = [ ":*" ]  # Only targets in this file can depend on this.
    416 
    417     deps = [
    418       ":js2c",
    419       ":js2c_experimental",
    420       ":js2c_extras",
    421       ":js2c_experimental_extras",
    422     ]
    423 
    424     sources = [
    425       "$target_gen_dir/libraries.bin",
    426       "$target_gen_dir/libraries_experimental.bin",
    427       "$target_gen_dir/libraries_extras.bin",
    428       "$target_gen_dir/libraries_experimental_extras.bin",
    429     ]
    430 
    431     outputs = [
    432       "$root_out_dir/natives_blob.bin",
    433     ]
    434 
    435     script = "tools/concatenate-files.py"
    436 
    437     args = rebase_path(sources + outputs, root_build_dir)
    438   }
    439 }
    440 
    441 action("postmortem-metadata") {
    442   # Only targets in this file and the top-level visibility target can
    443   # depend on this.
    444   visibility = [
    445     ":*",
    446     "//:gn_visibility",
    447   ]
    448 
    449   script = "tools/gen-postmortem-metadata.py"
    450 
    451   sources = [
    452     "src/objects.h",
    453     "src/objects-inl.h",
    454   ]
    455 
    456   outputs = [
    457     "$target_gen_dir/debug-support.cc",
    458   ]
    459 
    460   args = rebase_path(outputs, root_build_dir) +
    461          rebase_path(sources, root_build_dir)
    462 }
    463 
    464 action("run_mksnapshot") {
    465   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    466 
    467   deps = [
    468     ":mksnapshot($snapshot_toolchain)",
    469   ]
    470 
    471   script = "tools/run.py"
    472 
    473   outputs = [
    474     "$target_gen_dir/snapshot.cc",
    475   ]
    476 
    477   args = [
    478     "./" + rebase_path(get_label_info(":mksnapshot($snapshot_toolchain)",
    479                                       "root_out_dir") + "/mksnapshot",
    480                        root_build_dir),
    481     "--log-snapshot-positions",
    482     "--logfile",
    483     rebase_path("$target_gen_dir/snapshot.log", root_build_dir),
    484     "--startup_src",
    485     rebase_path("$target_gen_dir/snapshot.cc", root_build_dir),
    486   ]
    487 
    488   if (v8_random_seed != "0") {
    489     args += [
    490       "--random-seed",
    491       v8_random_seed,
    492     ]
    493   }
    494 
    495   if (v8_use_external_startup_data) {
    496     outputs += [ "$root_out_dir/snapshot_blob.bin" ]
    497     args += [
    498       "--startup_blob",
    499       rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir),
    500     ]
    501   }
    502 }
    503 
    504 ###############################################################################
    505 # Source Sets (aka static libraries)
    506 #
    507 
    508 source_set("v8_nosnapshot") {
    509   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    510 
    511   deps = [
    512     ":js2c",
    513     ":js2c_experimental",
    514     ":js2c_extras",
    515     ":js2c_experimental_extras",
    516     ":v8_base",
    517   ]
    518 
    519   sources = [
    520     "$target_gen_dir/libraries.cc",
    521     "$target_gen_dir/experimental-libraries.cc",
    522     "$target_gen_dir/extras-libraries.cc",
    523     "$target_gen_dir/experimental-extras-libraries.cc",
    524     "src/snapshot/snapshot-empty.cc",
    525   ]
    526 
    527   configs -= [ "//build/config/compiler:chromium_code" ]
    528   configs += [ "//build/config/compiler:no_chromium_code" ]
    529   configs += [
    530     ":internal_config",
    531     ":features",
    532     ":toolchain",
    533   ]
    534 }
    535 
    536 source_set("v8_snapshot") {
    537   # Only targets in this file and the top-level visibility target can
    538   # depend on this.
    539   visibility = [
    540     ":*",
    541     "//:gn_visibility",
    542   ]
    543 
    544   deps = [
    545     ":js2c",
    546     ":js2c_experimental",
    547     ":js2c_extras",
    548     ":js2c_experimental_extras",
    549     ":v8_base",
    550   ]
    551   public_deps = [
    552     # This should be public so downstream targets can declare the snapshot
    553     # output file as their inputs.
    554     ":run_mksnapshot",
    555   ]
    556 
    557   sources = [
    558     "$target_gen_dir/libraries.cc",
    559     "$target_gen_dir/experimental-libraries.cc",
    560     "$target_gen_dir/extras-libraries.cc",
    561     "$target_gen_dir/experimental-extras-libraries.cc",
    562     "$target_gen_dir/snapshot.cc",
    563   ]
    564 
    565   configs -= [ "//build/config/compiler:chromium_code" ]
    566   configs += [ "//build/config/compiler:no_chromium_code" ]
    567   configs += [
    568     ":internal_config",
    569     ":features",
    570     ":toolchain",
    571   ]
    572 }
    573 
    574 if (v8_use_external_startup_data) {
    575   source_set("v8_external_snapshot") {
    576     visibility = [ ":*" ]  # Only targets in this file can depend on this.
    577 
    578     deps = [
    579       ":js2c",
    580       ":js2c_experimental",
    581       ":js2c_extras",
    582       ":js2c_experimental_extras",
    583       ":v8_base",
    584     ]
    585     public_deps = [
    586       ":natives_blob",
    587       ":run_mksnapshot",
    588     ]
    589 
    590     sources = [
    591       "src/snapshot/natives-external.cc",
    592       "src/snapshot/snapshot-external.cc",
    593     ]
    594 
    595     configs -= [ "//build/config/compiler:chromium_code" ]
    596     configs += [ "//build/config/compiler:no_chromium_code" ]
    597     configs += [
    598       ":internal_config",
    599       ":features",
    600       ":toolchain",
    601     ]
    602   }
    603 }
    604 
    605 source_set("v8_base") {
    606   visibility = [ ":*" ]  # Only targets in this file can depend on this.
    607 
    608   sources = [
    609     # TODO(fmeawad): This needs to be updated to support standalone V8 builds.
    610     "../base/trace_event/common/trace_event_common.h",
    611     "include/v8-debug.h",
    612     "include/v8-experimental.h",
    613     "include/v8-platform.h",
    614     "include/v8-profiler.h",
    615     "include/v8-testing.h",
    616     "include/v8-util.h",
    617     "include/v8-version.h",
    618     "include/v8.h",
    619     "include/v8config.h",
    620     "src/accessors.cc",
    621     "src/accessors.h",
    622     "src/address-map.cc",
    623     "src/address-map.h",
    624     "src/allocation.cc",
    625     "src/allocation.h",
    626     "src/allocation-site-scopes.cc",
    627     "src/allocation-site-scopes.h",
    628     "src/api.cc",
    629     "src/api.h",
    630     "src/api-experimental.cc",
    631     "src/api-experimental.h",
    632     "src/api-natives.cc",
    633     "src/api-natives.h",
    634     "src/arguments.cc",
    635     "src/arguments.h",
    636     "src/assembler.cc",
    637     "src/assembler.h",
    638     "src/assert-scope.h",
    639     "src/assert-scope.cc",
    640     "src/ast/ast-expression-rewriter.cc",
    641     "src/ast/ast-expression-rewriter.h",
    642     "src/ast/ast-expression-visitor.cc",
    643     "src/ast/ast-expression-visitor.h",
    644     "src/ast/ast-literal-reindexer.cc",
    645     "src/ast/ast-literal-reindexer.h",
    646     "src/ast/ast-numbering.cc",
    647     "src/ast/ast-numbering.h",
    648     "src/ast/ast-value-factory.cc",
    649     "src/ast/ast-value-factory.h",
    650     "src/ast/ast.cc",
    651     "src/ast/ast.h",
    652     "src/ast/modules.cc",
    653     "src/ast/modules.h",
    654     "src/ast/prettyprinter.cc",
    655     "src/ast/prettyprinter.h",
    656     "src/ast/scopeinfo.cc",
    657     "src/ast/scopeinfo.h",
    658     "src/ast/scopes.cc",
    659     "src/ast/scopes.h",
    660     "src/ast/variables.cc",
    661     "src/ast/variables.h",
    662     "src/atomic-utils.h",
    663     "src/background-parsing-task.cc",
    664     "src/background-parsing-task.h",
    665     "src/bailout-reason.cc",
    666     "src/bailout-reason.h",
    667     "src/basic-block-profiler.cc",
    668     "src/basic-block-profiler.h",
    669     "src/bignum-dtoa.cc",
    670     "src/bignum-dtoa.h",
    671     "src/bignum.cc",
    672     "src/bignum.h",
    673     "src/bit-vector.cc",
    674     "src/bit-vector.h",
    675     "src/bootstrapper.cc",
    676     "src/bootstrapper.h",
    677     "src/builtins.cc",
    678     "src/builtins.h",
    679     "src/cancelable-task.cc",
    680     "src/cancelable-task.h",
    681     "src/cached-powers.cc",
    682     "src/cached-powers.h",
    683     "src/char-predicates.cc",
    684     "src/char-predicates-inl.h",
    685     "src/char-predicates.h",
    686     "src/checks.h",
    687     "src/code-factory.cc",
    688     "src/code-factory.h",
    689     "src/code-stubs.cc",
    690     "src/code-stubs.h",
    691     "src/code-stubs-hydrogen.cc",
    692     "src/codegen.cc",
    693     "src/codegen.h",
    694     "src/compilation-cache.cc",
    695     "src/compilation-cache.h",
    696     "src/compilation-dependencies.cc",
    697     "src/compilation-dependencies.h",
    698     "src/compilation-statistics.cc",
    699     "src/compilation-statistics.h",
    700     "src/compiler/access-builder.cc",
    701     "src/compiler/access-builder.h",
    702     "src/compiler/access-info.cc",
    703     "src/compiler/access-info.h",
    704     "src/compiler/all-nodes.cc",
    705     "src/compiler/all-nodes.h",
    706     "src/compiler/ast-graph-builder.cc",
    707     "src/compiler/ast-graph-builder.h",
    708     "src/compiler/ast-loop-assignment-analyzer.cc",
    709     "src/compiler/ast-loop-assignment-analyzer.h",
    710     "src/compiler/basic-block-instrumentor.cc",
    711     "src/compiler/basic-block-instrumentor.h",
    712     "src/compiler/branch-elimination.cc",
    713     "src/compiler/branch-elimination.h",
    714     "src/compiler/bytecode-branch-analysis.cc",
    715     "src/compiler/bytecode-branch-analysis.h",
    716     "src/compiler/bytecode-graph-builder.cc",
    717     "src/compiler/bytecode-graph-builder.h",
    718     "src/compiler/change-lowering.cc",
    719     "src/compiler/change-lowering.h",
    720     "src/compiler/c-linkage.cc",
    721     "src/compiler/coalesced-live-ranges.cc",
    722     "src/compiler/coalesced-live-ranges.h",
    723     "src/compiler/code-generator-impl.h",
    724     "src/compiler/code-generator.cc",
    725     "src/compiler/code-generator.h",
    726     "src/compiler/code-stub-assembler.cc",
    727     "src/compiler/code-stub-assembler.h",
    728     "src/compiler/common-node-cache.cc",
    729     "src/compiler/common-node-cache.h",
    730     "src/compiler/common-operator-reducer.cc",
    731     "src/compiler/common-operator-reducer.h",
    732     "src/compiler/common-operator.cc",
    733     "src/compiler/common-operator.h",
    734     "src/compiler/control-builders.cc",
    735     "src/compiler/control-builders.h",
    736     "src/compiler/control-equivalence.cc",
    737     "src/compiler/control-equivalence.h",
    738     "src/compiler/control-flow-optimizer.cc",
    739     "src/compiler/control-flow-optimizer.h",
    740     "src/compiler/dead-code-elimination.cc",
    741     "src/compiler/dead-code-elimination.h",
    742     "src/compiler/diamond.h",
    743     "src/compiler/escape-analysis.cc",
    744     "src/compiler/escape-analysis.h",
    745     "src/compiler/escape-analysis-reducer.cc",
    746     "src/compiler/escape-analysis-reducer.h",
    747     "src/compiler/fast-accessor-assembler.cc",
    748     "src/compiler/fast-accessor-assembler.h",
    749     "src/compiler/frame.cc",
    750     "src/compiler/frame.h",
    751     "src/compiler/frame-elider.cc",
    752     "src/compiler/frame-elider.h",
    753     "src/compiler/frame-states.cc",
    754     "src/compiler/frame-states.h",
    755     "src/compiler/gap-resolver.cc",
    756     "src/compiler/gap-resolver.h",
    757     "src/compiler/graph-reducer.cc",
    758     "src/compiler/graph-reducer.h",
    759     "src/compiler/graph-replay.cc",
    760     "src/compiler/graph-replay.h",
    761     "src/compiler/graph-trimmer.cc",
    762     "src/compiler/graph-trimmer.h",
    763     "src/compiler/graph-visualizer.cc",
    764     "src/compiler/graph-visualizer.h",
    765     "src/compiler/graph.cc",
    766     "src/compiler/graph.h",
    767     "src/compiler/greedy-allocator.cc",
    768     "src/compiler/greedy-allocator.h",
    769     "src/compiler/instruction-codes.h",
    770     "src/compiler/instruction-scheduler.cc",
    771     "src/compiler/instruction-scheduler.h",
    772     "src/compiler/instruction-selector-impl.h",
    773     "src/compiler/instruction-selector.cc",
    774     "src/compiler/instruction-selector.h",
    775     "src/compiler/instruction.cc",
    776     "src/compiler/instruction.h",
    777     "src/compiler/interpreter-assembler.cc",
    778     "src/compiler/interpreter-assembler.h",
    779     "src/compiler/js-builtin-reducer.cc",
    780     "src/compiler/js-builtin-reducer.h",
    781     "src/compiler/js-call-reducer.cc",
    782     "src/compiler/js-call-reducer.h",
    783     "src/compiler/js-context-relaxation.cc",
    784     "src/compiler/js-context-relaxation.h",
    785     "src/compiler/js-context-specialization.cc",
    786     "src/compiler/js-context-specialization.h",
    787     "src/compiler/js-frame-specialization.cc",
    788     "src/compiler/js-frame-specialization.h",
    789     "src/compiler/js-generic-lowering.cc",
    790     "src/compiler/js-generic-lowering.h",
    791     "src/compiler/js-global-object-specialization.cc",
    792     "src/compiler/js-global-object-specialization.h",
    793     "src/compiler/js-graph.cc",
    794     "src/compiler/js-graph.h",
    795     "src/compiler/js-inlining.cc",
    796     "src/compiler/js-inlining.h",
    797     "src/compiler/js-inlining-heuristic.cc",
    798     "src/compiler/js-inlining-heuristic.h",
    799     "src/compiler/js-intrinsic-lowering.cc",
    800     "src/compiler/js-intrinsic-lowering.h",
    801     "src/compiler/js-native-context-specialization.cc",
    802     "src/compiler/js-native-context-specialization.h",
    803     "src/compiler/js-operator.cc",
    804     "src/compiler/js-operator.h",
    805     "src/compiler/js-typed-lowering.cc",
    806     "src/compiler/js-typed-lowering.h",
    807     "src/compiler/jump-threading.cc",
    808     "src/compiler/jump-threading.h",
    809     "src/compiler/linkage.cc",
    810     "src/compiler/linkage.h",
    811     "src/compiler/live-range-separator.cc",
    812     "src/compiler/live-range-separator.h",
    813     "src/compiler/liveness-analyzer.cc",
    814     "src/compiler/liveness-analyzer.h",
    815     "src/compiler/load-elimination.cc",
    816     "src/compiler/load-elimination.h",
    817     "src/compiler/loop-peeling.cc",
    818     "src/compiler/loop-analysis.cc",
    819     "src/compiler/loop-analysis.h",
    820     "src/compiler/machine-operator-reducer.cc",
    821     "src/compiler/machine-operator-reducer.h",
    822     "src/compiler/machine-operator.cc",
    823     "src/compiler/machine-operator.h",
    824     "src/compiler/move-optimizer.cc",
    825     "src/compiler/move-optimizer.h",
    826     "src/compiler/node-aux-data.h",
    827     "src/compiler/node-cache.cc",
    828     "src/compiler/node-cache.h",
    829     "src/compiler/node-marker.cc",
    830     "src/compiler/node-marker.h",
    831     "src/compiler/node-matchers.cc",
    832     "src/compiler/node-matchers.h",
    833     "src/compiler/node-properties.cc",
    834     "src/compiler/node-properties.h",
    835     "src/compiler/node.cc",
    836     "src/compiler/node.h",
    837     "src/compiler/opcodes.cc",
    838     "src/compiler/opcodes.h",
    839     "src/compiler/operator-properties.cc",
    840     "src/compiler/operator-properties.h",
    841     "src/compiler/operator.cc",
    842     "src/compiler/operator.h",
    843     "src/compiler/osr.cc",
    844     "src/compiler/osr.h",
    845     "src/compiler/pipeline.cc",
    846     "src/compiler/pipeline.h",
    847     "src/compiler/pipeline-statistics.cc",
    848     "src/compiler/pipeline-statistics.h",
    849     "src/compiler/raw-machine-assembler.cc",
    850     "src/compiler/raw-machine-assembler.h",
    851     "src/compiler/register-allocator.cc",
    852     "src/compiler/register-allocator.h",
    853     "src/compiler/register-allocator-verifier.cc",
    854     "src/compiler/register-allocator-verifier.h",
    855     "src/compiler/representation-change.cc",
    856     "src/compiler/representation-change.h",
    857     "src/compiler/schedule.cc",
    858     "src/compiler/schedule.h",
    859     "src/compiler/scheduler.cc",
    860     "src/compiler/scheduler.h",
    861     "src/compiler/select-lowering.cc",
    862     "src/compiler/select-lowering.h",
    863     "src/compiler/simplified-lowering.cc",
    864     "src/compiler/simplified-lowering.h",
    865     "src/compiler/simplified-operator-reducer.cc",
    866     "src/compiler/simplified-operator-reducer.h",
    867     "src/compiler/simplified-operator.cc",
    868     "src/compiler/simplified-operator.h",
    869     "src/compiler/source-position.cc",
    870     "src/compiler/source-position.h",
    871     "src/compiler/state-values-utils.cc",
    872     "src/compiler/state-values-utils.h",
    873     "src/compiler/tail-call-optimization.cc",
    874     "src/compiler/tail-call-optimization.h",
    875     "src/compiler/type-hint-analyzer.cc",
    876     "src/compiler/type-hint-analyzer.h",
    877     "src/compiler/type-hints.cc",
    878     "src/compiler/type-hints.h",
    879     "src/compiler/typer.cc",
    880     "src/compiler/typer.h",
    881     "src/compiler/value-numbering-reducer.cc",
    882     "src/compiler/value-numbering-reducer.h",
    883     "src/compiler/verifier.cc",
    884     "src/compiler/verifier.h",
    885     "src/compiler/wasm-compiler.cc",
    886     "src/compiler/wasm-compiler.h",
    887     "src/compiler/wasm-linkage.cc",
    888     "src/compiler/zone-pool.cc",
    889     "src/compiler/zone-pool.h",
    890     "src/compiler.cc",
    891     "src/compiler.h",
    892     "src/context-measure.cc",
    893     "src/context-measure.h",
    894     "src/contexts-inl.h",
    895     "src/contexts.cc",
    896     "src/contexts.h",
    897     "src/conversions-inl.h",
    898     "src/conversions.cc",
    899     "src/conversions.h",
    900     "src/counters.cc",
    901     "src/counters.h",
    902     "src/crankshaft/hydrogen-alias-analysis.h",
    903     "src/crankshaft/hydrogen-bce.cc",
    904     "src/crankshaft/hydrogen-bce.h",
    905     "src/crankshaft/hydrogen-bch.cc",
    906     "src/crankshaft/hydrogen-bch.h",
    907     "src/crankshaft/hydrogen-canonicalize.cc",
    908     "src/crankshaft/hydrogen-canonicalize.h",
    909     "src/crankshaft/hydrogen-check-elimination.cc",
    910     "src/crankshaft/hydrogen-check-elimination.h",
    911     "src/crankshaft/hydrogen-dce.cc",
    912     "src/crankshaft/hydrogen-dce.h",
    913     "src/crankshaft/hydrogen-dehoist.cc",
    914     "src/crankshaft/hydrogen-dehoist.h",
    915     "src/crankshaft/hydrogen-environment-liveness.cc",
    916     "src/crankshaft/hydrogen-environment-liveness.h",
    917     "src/crankshaft/hydrogen-escape-analysis.cc",
    918     "src/crankshaft/hydrogen-escape-analysis.h",
    919     "src/crankshaft/hydrogen-flow-engine.h",
    920     "src/crankshaft/hydrogen-gvn.cc",
    921     "src/crankshaft/hydrogen-gvn.h",
    922     "src/crankshaft/hydrogen-infer-representation.cc",
    923     "src/crankshaft/hydrogen-infer-representation.h",
    924     "src/crankshaft/hydrogen-infer-types.cc",
    925     "src/crankshaft/hydrogen-infer-types.h",
    926     "src/crankshaft/hydrogen-instructions.cc",
    927     "src/crankshaft/hydrogen-instructions.h",
    928     "src/crankshaft/hydrogen-load-elimination.cc",
    929     "src/crankshaft/hydrogen-load-elimination.h",
    930     "src/crankshaft/hydrogen-mark-deoptimize.cc",
    931     "src/crankshaft/hydrogen-mark-deoptimize.h",
    932     "src/crankshaft/hydrogen-mark-unreachable.cc",
    933     "src/crankshaft/hydrogen-mark-unreachable.h",
    934     "src/crankshaft/hydrogen-osr.cc",
    935     "src/crankshaft/hydrogen-osr.h",
    936     "src/crankshaft/hydrogen-range-analysis.cc",
    937     "src/crankshaft/hydrogen-range-analysis.h",
    938     "src/crankshaft/hydrogen-redundant-phi.cc",
    939     "src/crankshaft/hydrogen-redundant-phi.h",
    940     "src/crankshaft/hydrogen-removable-simulates.cc",
    941     "src/crankshaft/hydrogen-removable-simulates.h",
    942     "src/crankshaft/hydrogen-representation-changes.cc",
    943     "src/crankshaft/hydrogen-representation-changes.h",
    944     "src/crankshaft/hydrogen-sce.cc",
    945     "src/crankshaft/hydrogen-sce.h",
    946     "src/crankshaft/hydrogen-store-elimination.cc",
    947     "src/crankshaft/hydrogen-store-elimination.h",
    948     "src/crankshaft/hydrogen-types.cc",
    949     "src/crankshaft/hydrogen-types.h",
    950     "src/crankshaft/hydrogen-uint32-analysis.cc",
    951     "src/crankshaft/hydrogen-uint32-analysis.h",
    952     "src/crankshaft/hydrogen.cc",
    953     "src/crankshaft/hydrogen.h",
    954     "src/crankshaft/lithium-allocator-inl.h",
    955     "src/crankshaft/lithium-allocator.cc",
    956     "src/crankshaft/lithium-allocator.h",
    957     "src/crankshaft/lithium-codegen.cc",
    958     "src/crankshaft/lithium-codegen.h",
    959     "src/crankshaft/lithium.cc",
    960     "src/crankshaft/lithium.h",
    961     "src/crankshaft/typing.cc",
    962     "src/crankshaft/typing.h",
    963     "src/crankshaft/unique.h",
    964     "src/date.cc",
    965     "src/date.h",
    966     "src/dateparser-inl.h",
    967     "src/dateparser.cc",
    968     "src/dateparser.h",
    969     "src/debug/debug-evaluate.cc",
    970     "src/debug/debug-evaluate.h",
    971     "src/debug/debug-frames.cc",
    972     "src/debug/debug-frames.h",
    973     "src/debug/debug-scopes.cc",
    974     "src/debug/debug-scopes.h",
    975     "src/debug/debug.cc",
    976     "src/debug/debug.h",
    977     "src/debug/liveedit.cc",
    978     "src/debug/liveedit.h",
    979     "src/deoptimizer.cc",
    980     "src/deoptimizer.h",
    981     "src/disasm.h",
    982     "src/disassembler.cc",
    983     "src/disassembler.h",
    984     "src/diy-fp.cc",
    985     "src/diy-fp.h",
    986     "src/double.h",
    987     "src/dtoa.cc",
    988     "src/dtoa.h",
    989     "src/effects.h",
    990     "src/elements-kind.cc",
    991     "src/elements-kind.h",
    992     "src/elements.cc",
    993     "src/elements.h",
    994     "src/execution.cc",
    995     "src/execution.h",
    996     "src/extensions/externalize-string-extension.cc",
    997     "src/extensions/externalize-string-extension.h",
    998     "src/extensions/free-buffer-extension.cc",
    999     "src/extensions/free-buffer-extension.h",
   1000     "src/extensions/gc-extension.cc",
   1001     "src/extensions/gc-extension.h",
   1002     "src/extensions/statistics-extension.cc",
   1003     "src/extensions/statistics-extension.h",
   1004     "src/extensions/trigger-failure-extension.cc",
   1005     "src/extensions/trigger-failure-extension.h",
   1006     "src/factory.cc",
   1007     "src/factory.h",
   1008     "src/fast-dtoa.cc",
   1009     "src/fast-dtoa.h",
   1010     "src/field-index.h",
   1011     "src/field-index-inl.h",
   1012     "src/fixed-dtoa.cc",
   1013     "src/fixed-dtoa.h",
   1014     "src/flag-definitions.h",
   1015     "src/flags.cc",
   1016     "src/flags.h",
   1017     "src/frames-inl.h",
   1018     "src/frames.cc",
   1019     "src/frames.h",
   1020     "src/full-codegen/full-codegen.cc",
   1021     "src/full-codegen/full-codegen.h",
   1022     "src/futex-emulation.cc",
   1023     "src/futex-emulation.h",
   1024     "src/gdb-jit.cc",
   1025     "src/gdb-jit.h",
   1026     "src/global-handles.cc",
   1027     "src/global-handles.h",
   1028     "src/globals.h",
   1029     "src/handles-inl.h",
   1030     "src/handles.cc",
   1031     "src/handles.h",
   1032     "src/hashmap.h",
   1033     "src/heap/array-buffer-tracker.cc",
   1034     "src/heap/array-buffer-tracker.h",
   1035     "src/heap/gc-idle-time-handler.cc",
   1036     "src/heap/gc-idle-time-handler.h",
   1037     "src/heap/gc-tracer.cc",
   1038     "src/heap/gc-tracer.h",
   1039     "src/heap/heap-inl.h",
   1040     "src/heap/heap.cc",
   1041     "src/heap/heap.h",
   1042     "src/heap/incremental-marking-job.cc",
   1043     "src/heap/incremental-marking-job.h",
   1044     "src/heap/incremental-marking.cc",
   1045     "src/heap/incremental-marking.h",
   1046     "src/heap/mark-compact-inl.h",
   1047     "src/heap/mark-compact.cc",
   1048     "src/heap/mark-compact.h",
   1049     "src/heap/memory-reducer.cc",
   1050     "src/heap/memory-reducer.h",
   1051     "src/heap/object-stats.cc",
   1052     "src/heap/object-stats.h",
   1053     "src/heap/objects-visiting-inl.h",
   1054     "src/heap/objects-visiting.cc",
   1055     "src/heap/objects-visiting.h",
   1056     "src/heap/scavenge-job.h",
   1057     "src/heap/scavenge-job.cc",
   1058     "src/heap/scavenger-inl.h",
   1059     "src/heap/scavenger.cc",
   1060     "src/heap/scavenger.h",
   1061     "src/heap/slots-buffer.cc",
   1062     "src/heap/slots-buffer.h",
   1063     "src/heap/spaces-inl.h",
   1064     "src/heap/spaces.cc",
   1065     "src/heap/spaces.h",
   1066     "src/heap/store-buffer-inl.h",
   1067     "src/heap/store-buffer.cc",
   1068     "src/heap/store-buffer.h",
   1069     "src/i18n.cc",
   1070     "src/i18n.h",
   1071     "src/icu_util.cc",
   1072     "src/icu_util.h",
   1073     "src/ic/access-compiler.cc",
   1074     "src/ic/access-compiler.h",
   1075     "src/ic/call-optimization.cc",
   1076     "src/ic/call-optimization.h",
   1077     "src/ic/handler-compiler.cc",
   1078     "src/ic/handler-compiler.h",
   1079     "src/ic/ic-inl.h",
   1080     "src/ic/ic-state.cc",
   1081     "src/ic/ic-state.h",
   1082     "src/ic/ic.cc",
   1083     "src/ic/ic.h",
   1084     "src/ic/ic-compiler.cc",
   1085     "src/ic/ic-compiler.h",
   1086     "src/ic/stub-cache.cc",
   1087     "src/ic/stub-cache.h",
   1088     "src/identity-map.cc",
   1089     "src/identity-map.h",
   1090     "src/interface-descriptors.cc",
   1091     "src/interface-descriptors.h",
   1092     "src/interpreter/bytecodes.cc",
   1093     "src/interpreter/bytecodes.h",
   1094     "src/interpreter/bytecode-array-builder.cc",
   1095     "src/interpreter/bytecode-array-builder.h",
   1096     "src/interpreter/bytecode-array-iterator.cc",
   1097     "src/interpreter/bytecode-array-iterator.h",
   1098     "src/interpreter/bytecode-generator.cc",
   1099     "src/interpreter/bytecode-generator.h",
   1100     "src/interpreter/bytecode-register-allocator.cc",
   1101     "src/interpreter/bytecode-register-allocator.h",
   1102     "src/interpreter/bytecode-traits.h",
   1103     "src/interpreter/constant-array-builder.cc",
   1104     "src/interpreter/constant-array-builder.h",
   1105     "src/interpreter/control-flow-builders.cc",
   1106     "src/interpreter/control-flow-builders.h",
   1107     "src/interpreter/interpreter.cc",
   1108     "src/interpreter/interpreter.h",
   1109     "src/isolate-inl.h",
   1110     "src/isolate.cc",
   1111     "src/isolate.h",
   1112     "src/json-stringifier.h",
   1113     "src/key-accumulator.h",
   1114     "src/key-accumulator.cc",
   1115     "src/layout-descriptor-inl.h",
   1116     "src/layout-descriptor.cc",
   1117     "src/layout-descriptor.h",
   1118     "src/list-inl.h",
   1119     "src/list.h",
   1120     "src/log-inl.h",
   1121     "src/log-utils.cc",
   1122     "src/log-utils.h",
   1123     "src/log.cc",
   1124     "src/log.h",
   1125     "src/lookup.cc",
   1126     "src/lookup.h",
   1127     "src/macro-assembler.h",
   1128     "src/machine-type.cc",
   1129     "src/machine-type.h",
   1130     "src/messages.cc",
   1131     "src/messages.h",
   1132     "src/msan.h",
   1133     "src/objects-body-descriptors-inl.h",
   1134     "src/objects-body-descriptors.h",
   1135     "src/objects-debug.cc",
   1136     "src/objects-inl.h",
   1137     "src/objects-printer.cc",
   1138     "src/objects.cc",
   1139     "src/objects.h",
   1140     "src/optimizing-compile-dispatcher.cc",
   1141     "src/optimizing-compile-dispatcher.h",
   1142     "src/ostreams.cc",
   1143     "src/ostreams.h",
   1144     "src/parsing/expression-classifier.h",
   1145     "src/parsing/func-name-inferrer.cc",
   1146     "src/parsing/func-name-inferrer.h",
   1147     "src/parsing/json-parser.h",
   1148     "src/parsing/parameter-initializer-rewriter.cc",
   1149     "src/parsing/parameter-initializer-rewriter.h",
   1150     "src/parsing/parser-base.h",
   1151     "src/parsing/parser.cc",
   1152     "src/parsing/parser.h",
   1153     "src/parsing/pattern-rewriter.cc",
   1154     "src/parsing/preparse-data-format.h",
   1155     "src/parsing/preparse-data.cc",
   1156     "src/parsing/preparse-data.h",
   1157     "src/parsing/preparser.cc",
   1158     "src/parsing/preparser.h",
   1159     "src/parsing/rewriter.cc",
   1160     "src/parsing/rewriter.h",
   1161     "src/parsing/scanner-character-streams.cc",
   1162     "src/parsing/scanner-character-streams.h",
   1163     "src/parsing/scanner.cc",
   1164     "src/parsing/scanner.h",
   1165     "src/parsing/token.cc",
   1166     "src/parsing/token.h",
   1167     "src/pending-compilation-error-handler.cc",
   1168     "src/pending-compilation-error-handler.h",
   1169     "src/profiler/allocation-tracker.cc",
   1170     "src/profiler/allocation-tracker.h",
   1171     "src/profiler/circular-queue-inl.h",
   1172     "src/profiler/circular-queue.h",
   1173     "src/profiler/cpu-profiler-inl.h",
   1174     "src/profiler/cpu-profiler.cc",
   1175     "src/profiler/cpu-profiler.h",
   1176     "src/profiler/heap-profiler.cc",
   1177     "src/profiler/heap-profiler.h",
   1178     "src/profiler/heap-snapshot-generator-inl.h",
   1179     "src/profiler/heap-snapshot-generator.cc",
   1180     "src/profiler/heap-snapshot-generator.h",
   1181     "src/profiler/profile-generator-inl.h",
   1182     "src/profiler/profile-generator.cc",
   1183     "src/profiler/profile-generator.h",
   1184     "src/profiler/sampler.cc",
   1185     "src/profiler/sampler.h",
   1186     "src/profiler/strings-storage.cc",
   1187     "src/profiler/strings-storage.h",
   1188     "src/profiler/unbound-queue-inl.h",
   1189     "src/profiler/unbound-queue.h",
   1190     "src/property-descriptor.cc",
   1191     "src/property-descriptor.h",
   1192     "src/property-details.h",
   1193     "src/property.cc",
   1194     "src/property.h",
   1195     "src/prototype.h",
   1196     "src/regexp/bytecodes-irregexp.h",
   1197     "src/regexp/interpreter-irregexp.cc",
   1198     "src/regexp/interpreter-irregexp.h",
   1199     "src/regexp/jsregexp-inl.h",
   1200     "src/regexp/jsregexp.cc",
   1201     "src/regexp/jsregexp.h",
   1202     "src/regexp/regexp-ast.cc",
   1203     "src/regexp/regexp-ast.h",
   1204     "src/regexp/regexp-macro-assembler-irregexp-inl.h",
   1205     "src/regexp/regexp-macro-assembler-irregexp.cc",
   1206     "src/regexp/regexp-macro-assembler-irregexp.h",
   1207     "src/regexp/regexp-macro-assembler-tracer.cc",
   1208     "src/regexp/regexp-macro-assembler-tracer.h",
   1209     "src/regexp/regexp-macro-assembler.cc",
   1210     "src/regexp/regexp-macro-assembler.h",
   1211     "src/regexp/regexp-parser.cc",
   1212     "src/regexp/regexp-parser.h",
   1213     "src/regexp/regexp-stack.cc",
   1214     "src/regexp/regexp-stack.h",
   1215     "src/register-configuration.cc",
   1216     "src/register-configuration.h",
   1217     "src/runtime-profiler.cc",
   1218     "src/runtime-profiler.h",
   1219     "src/runtime/runtime-array.cc",
   1220     "src/runtime/runtime-atomics.cc",
   1221     "src/runtime/runtime-classes.cc",
   1222     "src/runtime/runtime-collections.cc",
   1223     "src/runtime/runtime-compiler.cc",
   1224     "src/runtime/runtime-date.cc",
   1225     "src/runtime/runtime-debug.cc",
   1226     "src/runtime/runtime-forin.cc",
   1227     "src/runtime/runtime-function.cc",
   1228     "src/runtime/runtime-futex.cc",
   1229     "src/runtime/runtime-generator.cc",
   1230     "src/runtime/runtime-i18n.cc",
   1231     "src/runtime/runtime-internal.cc",
   1232     "src/runtime/runtime-interpreter.cc",
   1233     "src/runtime/runtime-json.cc",
   1234     "src/runtime/runtime-literals.cc",
   1235     "src/runtime/runtime-liveedit.cc",
   1236     "src/runtime/runtime-maths.cc",
   1237     "src/runtime/runtime-numbers.cc",
   1238     "src/runtime/runtime-object.cc",
   1239     "src/runtime/runtime-observe.cc",
   1240     "src/runtime/runtime-operators.cc",
   1241     "src/runtime/runtime-proxy.cc",
   1242     "src/runtime/runtime-regexp.cc",
   1243     "src/runtime/runtime-scopes.cc",
   1244     "src/runtime/runtime-simd.cc",
   1245     "src/runtime/runtime-strings.cc",
   1246     "src/runtime/runtime-symbol.cc",
   1247     "src/runtime/runtime-test.cc",
   1248     "src/runtime/runtime-typedarray.cc",
   1249     "src/runtime/runtime-uri.cc",
   1250     "src/runtime/runtime-utils.h",
   1251     "src/runtime/runtime.cc",
   1252     "src/runtime/runtime.h",
   1253     "src/safepoint-table.cc",
   1254     "src/safepoint-table.h",
   1255     "src/signature.h",
   1256     "src/simulator.h",
   1257     "src/small-pointer-list.h",
   1258     "src/snapshot/natives.h",
   1259     "src/snapshot/natives-common.cc",
   1260     "src/snapshot/serialize.cc",
   1261     "src/snapshot/serialize.h",
   1262     "src/snapshot/snapshot-common.cc",
   1263     "src/snapshot/snapshot-source-sink.cc",
   1264     "src/snapshot/snapshot-source-sink.h",
   1265     "src/splay-tree.h",
   1266     "src/splay-tree-inl.h",
   1267     "src/snapshot/snapshot.h",
   1268     "src/startup-data-util.h",
   1269     "src/startup-data-util.cc",
   1270     "src/string-builder.cc",
   1271     "src/string-builder.h",
   1272     "src/string-search.h",
   1273     "src/string-stream.cc",
   1274     "src/string-stream.h",
   1275     "src/strtod.cc",
   1276     "src/strtod.h",
   1277     "src/tracing/trace-event.cc",
   1278     "src/tracing/trace-event.h",
   1279     "src/transitions-inl.h",
   1280     "src/transitions.cc",
   1281     "src/transitions.h",
   1282     "src/type-cache.cc",
   1283     "src/type-cache.h",
   1284     "src/type-feedback-vector-inl.h",
   1285     "src/type-feedback-vector.cc",
   1286     "src/type-feedback-vector.h",
   1287     "src/type-info.cc",
   1288     "src/type-info.h",
   1289     "src/types-inl.h",
   1290     "src/types.cc",
   1291     "src/types.h",
   1292     "src/typing-asm.cc",
   1293     "src/typing-asm.h",
   1294     "src/typing-reset.cc",
   1295     "src/typing-reset.h",
   1296     "src/unicode-inl.h",
   1297     "src/unicode.cc",
   1298     "src/unicode.h",
   1299     "src/unicode-cache-inl.h",
   1300     "src/unicode-cache.h",
   1301     "src/unicode-decoder.cc",
   1302     "src/unicode-decoder.h",
   1303     "src/utils.cc",
   1304     "src/utils.h",
   1305     "src/v8.cc",
   1306     "src/v8.h",
   1307     "src/v8memory.h",
   1308     "src/v8threads.cc",
   1309     "src/v8threads.h",
   1310     "src/version.cc",
   1311     "src/version.h",
   1312     "src/vm-state-inl.h",
   1313     "src/vm-state.h",
   1314     "src/wasm/asm-wasm-builder.cc",
   1315     "src/wasm/asm-wasm-builder.h",
   1316     "src/wasm/ast-decoder.cc",
   1317     "src/wasm/ast-decoder.h",
   1318     "src/wasm/decoder.h",
   1319     "src/wasm/encoder.cc",
   1320     "src/wasm/encoder.h",
   1321     "src/wasm/module-decoder.cc",
   1322     "src/wasm/module-decoder.h",
   1323     "src/wasm/wasm-js.cc",
   1324     "src/wasm/wasm-js.h",
   1325     "src/wasm/wasm-macro-gen.h",
   1326     "src/wasm/wasm-module.cc",
   1327     "src/wasm/wasm-module.h",
   1328     "src/wasm/wasm-opcodes.cc",
   1329     "src/wasm/wasm-opcodes.h",
   1330     "src/wasm/wasm-result.cc",
   1331     "src/wasm/wasm-result.h",
   1332     "src/zone.cc",
   1333     "src/zone.h",
   1334     "src/zone-allocator.h",
   1335     "src/zone-containers.h",
   1336     "src/third_party/fdlibm/fdlibm.cc",
   1337     "src/third_party/fdlibm/fdlibm.h",
   1338   ]
   1339 
   1340   if (v8_target_arch == "x86") {
   1341     sources += [
   1342       "src/crankshaft/ia32/lithium-codegen-ia32.cc",
   1343       "src/crankshaft/ia32/lithium-codegen-ia32.h",
   1344       "src/crankshaft/ia32/lithium-gap-resolver-ia32.cc",
   1345       "src/crankshaft/ia32/lithium-gap-resolver-ia32.h",
   1346       "src/crankshaft/ia32/lithium-ia32.cc",
   1347       "src/crankshaft/ia32/lithium-ia32.h",
   1348       "src/compiler/ia32/code-generator-ia32.cc",
   1349       "src/compiler/ia32/instruction-codes-ia32.h",
   1350       "src/compiler/ia32/instruction-scheduler-ia32.cc",
   1351       "src/compiler/ia32/instruction-selector-ia32.cc",
   1352       "src/debug/ia32/debug-ia32.cc",
   1353       "src/full-codegen/ia32/full-codegen-ia32.cc",
   1354       "src/ia32/assembler-ia32-inl.h",
   1355       "src/ia32/assembler-ia32.cc",
   1356       "src/ia32/assembler-ia32.h",
   1357       "src/ia32/builtins-ia32.cc",
   1358       "src/ia32/code-stubs-ia32.cc",
   1359       "src/ia32/code-stubs-ia32.h",
   1360       "src/ia32/codegen-ia32.cc",
   1361       "src/ia32/codegen-ia32.h",
   1362       "src/ia32/cpu-ia32.cc",
   1363       "src/ia32/deoptimizer-ia32.cc",
   1364       "src/ia32/disasm-ia32.cc",
   1365       "src/ia32/frames-ia32.cc",
   1366       "src/ia32/frames-ia32.h",
   1367       "src/ia32/interface-descriptors-ia32.cc",
   1368       "src/ia32/macro-assembler-ia32.cc",
   1369       "src/ia32/macro-assembler-ia32.h",
   1370       "src/ic/ia32/access-compiler-ia32.cc",
   1371       "src/ic/ia32/handler-compiler-ia32.cc",
   1372       "src/ic/ia32/ic-ia32.cc",
   1373       "src/ic/ia32/ic-compiler-ia32.cc",
   1374       "src/ic/ia32/stub-cache-ia32.cc",
   1375       "src/regexp/ia32/regexp-macro-assembler-ia32.cc",
   1376       "src/regexp/ia32/regexp-macro-assembler-ia32.h",
   1377     ]
   1378   } else if (v8_target_arch == "x64") {
   1379     sources += [
   1380       "src/compiler/x64/code-generator-x64.cc",
   1381       "src/compiler/x64/instruction-codes-x64.h",
   1382       "src/compiler/x64/instruction-scheduler-x64.cc",
   1383       "src/compiler/x64/instruction-selector-x64.cc",
   1384       "src/crankshaft/x64/lithium-codegen-x64.cc",
   1385       "src/crankshaft/x64/lithium-codegen-x64.h",
   1386       "src/crankshaft/x64/lithium-gap-resolver-x64.cc",
   1387       "src/crankshaft/x64/lithium-gap-resolver-x64.h",
   1388       "src/crankshaft/x64/lithium-x64.cc",
   1389       "src/crankshaft/x64/lithium-x64.h",
   1390       "src/debug/x64/debug-x64.cc",
   1391       "src/full-codegen/x64/full-codegen-x64.cc",
   1392       "src/ic/x64/access-compiler-x64.cc",
   1393       "src/ic/x64/handler-compiler-x64.cc",
   1394       "src/ic/x64/ic-x64.cc",
   1395       "src/ic/x64/ic-compiler-x64.cc",
   1396       "src/ic/x64/stub-cache-x64.cc",
   1397       "src/regexp/x64/regexp-macro-assembler-x64.cc",
   1398       "src/regexp/x64/regexp-macro-assembler-x64.h",
   1399       "src/x64/assembler-x64-inl.h",
   1400       "src/x64/assembler-x64.cc",
   1401       "src/x64/assembler-x64.h",
   1402       "src/x64/builtins-x64.cc",
   1403       "src/x64/code-stubs-x64.cc",
   1404       "src/x64/code-stubs-x64.h",
   1405       "src/x64/codegen-x64.cc",
   1406       "src/x64/codegen-x64.h",
   1407       "src/x64/cpu-x64.cc",
   1408       "src/x64/deoptimizer-x64.cc",
   1409       "src/x64/disasm-x64.cc",
   1410       "src/x64/frames-x64.cc",
   1411       "src/x64/frames-x64.h",
   1412       "src/x64/interface-descriptors-x64.cc",
   1413       "src/x64/macro-assembler-x64.cc",
   1414       "src/x64/macro-assembler-x64.h",
   1415     ]
   1416   } else if (v8_target_arch == "arm") {
   1417     sources += [
   1418       "src/arm/assembler-arm-inl.h",
   1419       "src/arm/assembler-arm.cc",
   1420       "src/arm/assembler-arm.h",
   1421       "src/arm/builtins-arm.cc",
   1422       "src/arm/code-stubs-arm.cc",
   1423       "src/arm/code-stubs-arm.h",
   1424       "src/arm/codegen-arm.cc",
   1425       "src/arm/codegen-arm.h",
   1426       "src/arm/constants-arm.h",
   1427       "src/arm/constants-arm.cc",
   1428       "src/arm/cpu-arm.cc",
   1429       "src/arm/deoptimizer-arm.cc",
   1430       "src/arm/disasm-arm.cc",
   1431       "src/arm/frames-arm.cc",
   1432       "src/arm/frames-arm.h",
   1433       "src/arm/interface-descriptors-arm.cc",
   1434       "src/arm/interface-descriptors-arm.h",
   1435       "src/arm/macro-assembler-arm.cc",
   1436       "src/arm/macro-assembler-arm.h",
   1437       "src/arm/simulator-arm.cc",
   1438       "src/arm/simulator-arm.h",
   1439       "src/compiler/arm/code-generator-arm.cc",
   1440       "src/compiler/arm/instruction-codes-arm.h",
   1441       "src/compiler/arm/instruction-scheduler-arm.cc",
   1442       "src/compiler/arm/instruction-selector-arm.cc",
   1443       "src/crankshaft/arm/lithium-arm.cc",
   1444       "src/crankshaft/arm/lithium-arm.h",
   1445       "src/crankshaft/arm/lithium-codegen-arm.cc",
   1446       "src/crankshaft/arm/lithium-codegen-arm.h",
   1447       "src/crankshaft/arm/lithium-gap-resolver-arm.cc",
   1448       "src/crankshaft/arm/lithium-gap-resolver-arm.h",
   1449       "src/debug/arm/debug-arm.cc",
   1450       "src/full-codegen/arm/full-codegen-arm.cc",
   1451       "src/ic/arm/access-compiler-arm.cc",
   1452       "src/ic/arm/handler-compiler-arm.cc",
   1453       "src/ic/arm/ic-arm.cc",
   1454       "src/ic/arm/ic-compiler-arm.cc",
   1455       "src/ic/arm/stub-cache-arm.cc",
   1456       "src/regexp/arm/regexp-macro-assembler-arm.cc",
   1457       "src/regexp/arm/regexp-macro-assembler-arm.h",
   1458     ]
   1459   } else if (v8_target_arch == "arm64") {
   1460     sources += [
   1461       "src/arm64/assembler-arm64.cc",
   1462       "src/arm64/assembler-arm64.h",
   1463       "src/arm64/assembler-arm64-inl.h",
   1464       "src/arm64/builtins-arm64.cc",
   1465       "src/arm64/codegen-arm64.cc",
   1466       "src/arm64/codegen-arm64.h",
   1467       "src/arm64/code-stubs-arm64.cc",
   1468       "src/arm64/code-stubs-arm64.h",
   1469       "src/arm64/constants-arm64.h",
   1470       "src/arm64/cpu-arm64.cc",
   1471       "src/arm64/decoder-arm64.cc",
   1472       "src/arm64/decoder-arm64.h",
   1473       "src/arm64/decoder-arm64-inl.h",
   1474       "src/arm64/deoptimizer-arm64.cc",
   1475       "src/arm64/disasm-arm64.cc",
   1476       "src/arm64/disasm-arm64.h",
   1477       "src/arm64/frames-arm64.cc",
   1478       "src/arm64/frames-arm64.h",
   1479       "src/arm64/instructions-arm64.cc",
   1480       "src/arm64/instructions-arm64.h",
   1481       "src/arm64/instrument-arm64.cc",
   1482       "src/arm64/instrument-arm64.h",
   1483       "src/arm64/interface-descriptors-arm64.cc",
   1484       "src/arm64/interface-descriptors-arm64.h",
   1485       "src/arm64/macro-assembler-arm64.cc",
   1486       "src/arm64/macro-assembler-arm64.h",
   1487       "src/arm64/macro-assembler-arm64-inl.h",
   1488       "src/arm64/simulator-arm64.cc",
   1489       "src/arm64/simulator-arm64.h",
   1490       "src/arm64/utils-arm64.cc",
   1491       "src/arm64/utils-arm64.h",
   1492       "src/compiler/arm64/code-generator-arm64.cc",
   1493       "src/compiler/arm64/instruction-codes-arm64.h",
   1494       "src/compiler/arm64/instruction-scheduler-arm64.cc",
   1495       "src/compiler/arm64/instruction-selector-arm64.cc",
   1496       "src/crankshaft/arm64/delayed-masm-arm64.cc",
   1497       "src/crankshaft/arm64/delayed-masm-arm64.h",
   1498       "src/crankshaft/arm64/delayed-masm-arm64-inl.h",
   1499       "src/crankshaft/arm64/lithium-arm64.cc",
   1500       "src/crankshaft/arm64/lithium-arm64.h",
   1501       "src/crankshaft/arm64/lithium-codegen-arm64.cc",
   1502       "src/crankshaft/arm64/lithium-codegen-arm64.h",
   1503       "src/crankshaft/arm64/lithium-gap-resolver-arm64.cc",
   1504       "src/crankshaft/arm64/lithium-gap-resolver-arm64.h",
   1505       "src/debug/arm64/debug-arm64.cc",
   1506       "src/full-codegen/arm64/full-codegen-arm64.cc",
   1507       "src/ic/arm64/access-compiler-arm64.cc",
   1508       "src/ic/arm64/handler-compiler-arm64.cc",
   1509       "src/ic/arm64/ic-arm64.cc",
   1510       "src/ic/arm64/ic-compiler-arm64.cc",
   1511       "src/ic/arm64/stub-cache-arm64.cc",
   1512       "src/regexp/arm64/regexp-macro-assembler-arm64.cc",
   1513       "src/regexp/arm64/regexp-macro-assembler-arm64.h",
   1514     ]
   1515   } else if (v8_target_arch == "mipsel") {
   1516     sources += [
   1517       "src/compiler/mips/code-generator-mips.cc",
   1518       "src/compiler/mips/instruction-codes-mips.h",
   1519       "src/compiler/mips/instruction-scheduler-mips.cc",
   1520       "src/compiler/mips/instruction-selector-mips.cc",
   1521       "src/crankshaft/mips/lithium-codegen-mips.cc",
   1522       "src/crankshaft/mips/lithium-codegen-mips.h",
   1523       "src/crankshaft/mips/lithium-gap-resolver-mips.cc",
   1524       "src/crankshaft/mips/lithium-gap-resolver-mips.h",
   1525       "src/crankshaft/mips/lithium-mips.cc",
   1526       "src/crankshaft/mips/lithium-mips.h",
   1527       "src/debug/mips/debug-mips.cc",
   1528       "src/full-codegen/mips/full-codegen-mips.cc",
   1529       "src/ic/mips/access-compiler-mips.cc",
   1530       "src/ic/mips/handler-compiler-mips.cc",
   1531       "src/ic/mips/ic-mips.cc",
   1532       "src/ic/mips/ic-compiler-mips.cc",
   1533       "src/ic/mips/stub-cache-mips.cc",
   1534       "src/mips/assembler-mips.cc",
   1535       "src/mips/assembler-mips.h",
   1536       "src/mips/assembler-mips-inl.h",
   1537       "src/mips/builtins-mips.cc",
   1538       "src/mips/codegen-mips.cc",
   1539       "src/mips/codegen-mips.h",
   1540       "src/mips/code-stubs-mips.cc",
   1541       "src/mips/code-stubs-mips.h",
   1542       "src/mips/constants-mips.cc",
   1543       "src/mips/constants-mips.h",
   1544       "src/mips/cpu-mips.cc",
   1545       "src/mips/deoptimizer-mips.cc",
   1546       "src/mips/disasm-mips.cc",
   1547       "src/mips/frames-mips.cc",
   1548       "src/mips/frames-mips.h",
   1549       "src/mips/interface-descriptors-mips.cc",
   1550       "src/mips/macro-assembler-mips.cc",
   1551       "src/mips/macro-assembler-mips.h",
   1552       "src/mips/simulator-mips.cc",
   1553       "src/mips/simulator-mips.h",
   1554       "src/regexp/mips/regexp-macro-assembler-mips.cc",
   1555       "src/regexp/mips/regexp-macro-assembler-mips.h",
   1556     ]
   1557   } else if (v8_target_arch == "mips64el") {
   1558     sources += [
   1559       "compiler/mips64/code-generator-mips64.cc",
   1560       "compiler/mips64/instruction-codes-mips64.h",
   1561       "compiler/mips64/instruction-scheduler-mips64.cc",
   1562       "compiler/mips64/instruction-selector-mips64.cc",
   1563       "src/crankshaft/mips64/lithium-codegen-mips64.cc",
   1564       "src/crankshaft/mips64/lithium-codegen-mips64.h",
   1565       "src/crankshaft/mips64/lithium-gap-resolver-mips64.cc",
   1566       "src/crankshaft/mips64/lithium-gap-resolver-mips64.h",
   1567       "src/crankshaft/mips64/lithium-mips64.cc",
   1568       "src/crankshaft/mips64/lithium-mips64.h",
   1569       "src/debug/mips64/debug-mips64.cc",
   1570       "src/full-codegen/mips64/full-codegen-mips64.cc",
   1571       "src/ic/mips64/access-compiler-mips64.cc",
   1572       "src/ic/mips64/handler-compiler-mips64.cc",
   1573       "src/ic/mips64/ic-mips64.cc",
   1574       "src/ic/mips64/ic-compiler-mips64.cc",
   1575       "src/ic/mips64/stub-cache-mips64.cc",
   1576       "src/mips64/assembler-mips64.cc",
   1577       "src/mips64/assembler-mips64.h",
   1578       "src/mips64/assembler-mips64-inl.h",
   1579       "src/mips64/builtins-mips64.cc",
   1580       "src/mips64/codegen-mips64.cc",
   1581       "src/mips64/codegen-mips64.h",
   1582       "src/mips64/code-stubs-mips64.cc",
   1583       "src/mips64/code-stubs-mips64.h",
   1584       "src/mips64/constants-mips64.cc",
   1585       "src/mips64/constants-mips64.h",
   1586       "src/mips64/cpu-mips64.cc",
   1587       "src/mips64/deoptimizer-mips64.cc",
   1588       "src/mips64/disasm-mips64.cc",
   1589       "src/mips64/frames-mips64.cc",
   1590       "src/mips64/frames-mips64.h",
   1591       "src/mips64/interface-descriptors-mips64.cc",
   1592       "src/mips64/macro-assembler-mips64.cc",
   1593       "src/mips64/macro-assembler-mips64.h",
   1594       "src/mips64/simulator-mips64.cc",
   1595       "src/mips64/simulator-mips64.h",
   1596       "src/regexp/mips64/regexp-macro-assembler-mips64.cc",
   1597       "src/regexp/mips64/regexp-macro-assembler-mips64.h",
   1598     ]
   1599   }
   1600 
   1601   configs -= [ "//build/config/compiler:chromium_code" ]
   1602   configs += [ "//build/config/compiler:no_chromium_code" ]
   1603   configs += [
   1604     ":internal_config",
   1605     ":features",
   1606     ":toolchain",
   1607   ]
   1608 
   1609   if (!is_debug) {
   1610     configs -= [ "//build/config/compiler:default_optimization" ]
   1611     configs += [ "//build/config/compiler:optimize_max" ]
   1612   }
   1613 
   1614   defines = []
   1615   deps = [
   1616     ":v8_libbase",
   1617   ]
   1618 
   1619   if (is_win) {
   1620     # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
   1621     cflags = [ "/wd4267" ]
   1622   }
   1623 
   1624   if (v8_enable_i18n_support) {
   1625     deps += [ "//third_party/icu" ]
   1626     if (is_win) {
   1627       deps += [ "//third_party/icu:icudata" ]
   1628     }
   1629 
   1630     # TODO(jochen): Add support for icu_use_data_file_flag
   1631     defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ]
   1632   } else {
   1633     sources -= [
   1634       "src/i18n.cc",
   1635       "src/i18n.h",
   1636     ]
   1637   }
   1638 
   1639   if (v8_postmortem_support) {
   1640     sources += [ "$target_gen_dir/debug-support.cc" ]
   1641     deps += [ ":postmortem-metadata" ]
   1642   }
   1643 }
   1644 
   1645 source_set("v8_libbase") {
   1646   visibility = [ ":*" ]  # Only targets in this file can depend on this.
   1647 
   1648   sources = [
   1649     "src/base/adapters.h",
   1650     "src/base/atomicops.h",
   1651     "src/base/atomicops_internals_arm64_gcc.h",
   1652     "src/base/atomicops_internals_arm_gcc.h",
   1653     "src/base/atomicops_internals_atomicword_compat.h",
   1654     "src/base/atomicops_internals_mac.h",
   1655     "src/base/atomicops_internals_mips_gcc.h",
   1656     "src/base/atomicops_internals_mips64_gcc.h",
   1657     "src/base/atomicops_internals_portable.h",
   1658     "src/base/atomicops_internals_tsan.h",
   1659     "src/base/atomicops_internals_x86_gcc.cc",
   1660     "src/base/atomicops_internals_x86_gcc.h",
   1661     "src/base/atomicops_internals_x86_msvc.h",
   1662     "src/base/bits.cc",
   1663     "src/base/bits.h",
   1664     "src/base/build_config.h",
   1665     "src/base/cpu.cc",
   1666     "src/base/cpu.h",
   1667     "src/base/division-by-constant.cc",
   1668     "src/base/division-by-constant.h",
   1669     "src/base/flags.h",
   1670     "src/base/functional.cc",
   1671     "src/base/functional.h",
   1672     "src/base/iterator.h",
   1673     "src/base/lazy-instance.h",
   1674     "src/base/logging.cc",
   1675     "src/base/logging.h",
   1676     "src/base/macros.h",
   1677     "src/base/once.cc",
   1678     "src/base/once.h",
   1679     "src/base/platform/elapsed-timer.h",
   1680     "src/base/platform/time.cc",
   1681     "src/base/platform/time.h",
   1682     "src/base/platform/condition-variable.cc",
   1683     "src/base/platform/condition-variable.h",
   1684     "src/base/platform/mutex.cc",
   1685     "src/base/platform/mutex.h",
   1686     "src/base/platform/platform.h",
   1687     "src/base/platform/semaphore.cc",
   1688     "src/base/platform/semaphore.h",
   1689     "src/base/safe_conversions.h",
   1690     "src/base/safe_conversions_impl.h",
   1691     "src/base/safe_math.h",
   1692     "src/base/safe_math_impl.h",
   1693     "src/base/smart-pointers.h",
   1694     "src/base/sys-info.cc",
   1695     "src/base/sys-info.h",
   1696     "src/base/utils/random-number-generator.cc",
   1697     "src/base/utils/random-number-generator.h",
   1698   ]
   1699 
   1700   configs -= [ "//build/config/compiler:chromium_code" ]
   1701   configs += [ "//build/config/compiler:no_chromium_code" ]
   1702   configs += [
   1703     ":internal_config_base",
   1704     ":features",
   1705     ":toolchain",
   1706   ]
   1707 
   1708   if (!is_debug) {
   1709     configs -= [ "//build/config/compiler:default_optimization" ]
   1710     configs += [ "//build/config/compiler:optimize_max" ]
   1711   }
   1712 
   1713   defines = []
   1714 
   1715   if (is_posix) {
   1716     sources += [ "src/base/platform/platform-posix.cc" ]
   1717   }
   1718 
   1719   if (is_linux) {
   1720     sources += [ "src/base/platform/platform-linux.cc" ]
   1721 
   1722     libs = [ "dl", "rt" ]
   1723   } else if (is_android) {
   1724     defines += [ "CAN_USE_VFP_INSTRUCTIONS" ]
   1725 
   1726     if (current_toolchain == host_toolchain) {
   1727       libs = [ "dl", "rt" ]
   1728       if (host_os == "mac") {
   1729         sources += [ "src/base/platform/platform-macos.cc" ]
   1730       } else {
   1731         sources += [ "src/base/platform/platform-linux.cc" ]
   1732       }
   1733     } else {
   1734       sources += [ "src/base/platform/platform-linux.cc" ]
   1735     }
   1736   } else if (is_mac) {
   1737     sources += [ "src/base/platform/platform-macos.cc" ]
   1738   } else if (is_win) {
   1739     # TODO(jochen): Add support for cygwin.
   1740     sources += [
   1741       "src/base/platform/platform-win32.cc",
   1742       "src/base/win32-headers.h",
   1743     ]
   1744 
   1745     defines += [ "_CRT_RAND_S" ]  # for rand_s()
   1746 
   1747     libs = [
   1748       "winmm.lib",
   1749       "ws2_32.lib",
   1750     ]
   1751   }
   1752 
   1753   # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris.
   1754 }
   1755 
   1756 source_set("v8_libplatform") {
   1757   sources = [
   1758     "include/libplatform/libplatform.h",
   1759     "src/libplatform/default-platform.cc",
   1760     "src/libplatform/default-platform.h",
   1761     "src/libplatform/task-queue.cc",
   1762     "src/libplatform/task-queue.h",
   1763     "src/libplatform/worker-thread.cc",
   1764     "src/libplatform/worker-thread.h",
   1765   ]
   1766 
   1767   configs -= [ "//build/config/compiler:chromium_code" ]
   1768   configs += [ "//build/config/compiler:no_chromium_code" ]
   1769   configs += [
   1770     ":internal_config_base",
   1771     ":features",
   1772     ":toolchain",
   1773   ]
   1774 
   1775   if (!is_debug) {
   1776     configs -= [ "//build/config/compiler:default_optimization" ]
   1777     configs += [ "//build/config/compiler:optimize_max" ]
   1778   }
   1779 
   1780   deps = [
   1781     ":v8_libbase",
   1782   ]
   1783 }
   1784 
   1785 ###############################################################################
   1786 # Executables
   1787 #
   1788 
   1789 if (current_toolchain == snapshot_toolchain) {
   1790   executable("mksnapshot") {
   1791     visibility = [ ":*" ]  # Only targets in this file can depend on this.
   1792 
   1793     sources = [
   1794       "src/snapshot/mksnapshot.cc",
   1795     ]
   1796 
   1797     configs -= [ "//build/config/compiler:chromium_code" ]
   1798     configs += [ "//build/config/compiler:no_chromium_code" ]
   1799     configs += [
   1800       ":internal_config",
   1801       ":features",
   1802       ":toolchain",
   1803     ]
   1804 
   1805     deps = [
   1806       ":v8_base",
   1807       ":v8_libplatform",
   1808       ":v8_nosnapshot",
   1809       "//build/config/sanitizers:deps",
   1810     ]
   1811   }
   1812 }
   1813 
   1814 ###############################################################################
   1815 # Public targets
   1816 #
   1817 
   1818 if (v8_use_snapshot && v8_use_external_startup_data) {
   1819   snapshot_target = ":v8_external_snapshot"
   1820 } else if (v8_use_snapshot) {
   1821   snapshot_target = ":v8_snapshot"
   1822 } else {
   1823   assert(!v8_use_external_startup_data)
   1824   snapshot_target = ":v8_nosnapshot"
   1825 }
   1826 
   1827 if (is_component_build) {
   1828   component("v8") {
   1829     sources = [
   1830       "src/v8dll-main.cc",
   1831     ]
   1832 
   1833     public_deps = [
   1834       ":v8_base",
   1835       snapshot_target,
   1836     ]
   1837 
   1838     configs -= [ "//build/config/compiler:chromium_code" ]
   1839     configs += [ "//build/config/compiler:no_chromium_code" ]
   1840     configs += [
   1841       ":internal_config",
   1842       ":features",
   1843       ":toolchain",
   1844     ]
   1845 
   1846     public_configs = [ ":external_config" ]
   1847 
   1848     libs = []
   1849     if (is_android && current_toolchain != host_toolchain) {
   1850       libs += [ "log" ]
   1851     }
   1852   }
   1853 } else {
   1854   group("v8") {
   1855     public_deps = [
   1856       ":v8_base",
   1857       snapshot_target,
   1858     ]
   1859     public_configs = [ ":external_config" ]
   1860   }
   1861 }
   1862 
   1863 if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") ||
   1864     (current_toolchain == snapshot_toolchain && v8_toolset_for_d8 == "host") ||
   1865     (current_toolchain != host_toolchain && v8_toolset_for_d8 == "target")) {
   1866   executable("d8") {
   1867     sources = [
   1868       "src/d8.cc",
   1869       "src/d8.h",
   1870     ]
   1871 
   1872     configs -= [ "//build/config/compiler:chromium_code" ]
   1873     configs += [ "//build/config/compiler:no_chromium_code" ]
   1874     configs += [
   1875       # Note: don't use :internal_config here because this target will get
   1876       # the :external_config applied to it by virtue of depending on :v8, and
   1877       # you can't have both applied to the same target.
   1878       ":internal_config_base",
   1879       ":features",
   1880       ":toolchain",
   1881     ]
   1882 
   1883     deps = [
   1884       ":d8_js2c",
   1885       ":v8",
   1886       ":v8_libplatform",
   1887       "//build/config/sanitizers:deps",
   1888     ]
   1889 
   1890     # TODO(jochen): Add support for vtunejit.
   1891 
   1892     if (is_posix) {
   1893       sources += [ "src/d8-posix.cc" ]
   1894     } else if (is_win) {
   1895       sources += [ "src/d8-windows.cc" ]
   1896     }
   1897 
   1898     if (!is_component_build) {
   1899       sources += [
   1900         "$target_gen_dir/d8-js.cc",
   1901       ]
   1902     }
   1903     if (v8_enable_i18n_support) {
   1904       deps += [ "//third_party/icu" ]
   1905     }
   1906   }
   1907 }
   1908