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 5import("//build/config/android/config.gni") 6import("//build/config/arm.gni") 7import("//build/config/dcheck_always_on.gni") 8import("//build/config/host_byteorder.gni") 9import("//build/config/mips.gni") 10import("//build/config/sanitizers/sanitizers.gni") 11import("//build_overrides/build.gni") 12 13if (is_android) { 14 import("//build/config/android/rules.gni") 15} 16 17import("gni/snapshot_toolchain.gni") 18import("gni/v8.gni") 19 20# Specifies if the target build is a simulator build. Comparing target cpu 21# with v8 target cpu to not affect simulator builds for making cross-compile 22# snapshots. 23target_is_simulator = (target_cpu != v8_target_cpu && !v8_multi_arch_build) || 24 (current_cpu != v8_current_cpu && v8_multi_arch_build) 25 26# For faster Windows builds. See https://crbug.com/v8/8475. 27emit_builtins_as_inline_asm = is_win && is_clang 28 29declare_args() { 30 # Print to stdout on Android. 31 v8_android_log_stdout = false 32 33 # Dynamically set an additional dependency from v8/custom_deps. 34 v8_custom_deps = "" 35 36 # Turns on all V8 debug features. Enables running V8 in a pseudo debug mode 37 # within a release Chrome. 38 v8_enable_debugging_features = is_debug 39 40 # Sets -DV8_ENABLE_FUTURE. 41 v8_enable_future = false 42 43 # Lite mode disables a number of performance optimizations to reduce memory 44 # at the cost of performance. 45 # Sets --DV8_LITE_MODE. 46 v8_enable_lite_mode = false 47 48 # Sets -DVERIFY_HEAP. 49 v8_enable_verify_heap = "" 50 51 # Sets -DVERIFY_PREDICTABLE 52 v8_enable_verify_predictable = false 53 54 # Enable compiler warnings when using V8_DEPRECATED apis. 55 v8_deprecation_warnings = true 56 57 # Enable compiler warnings when using V8_DEPRECATE_SOON apis. 58 v8_imminent_deprecation_warnings = true 59 60 # Embeds the given script into the snapshot. 61 v8_embed_script = "" 62 63 # Allows the embedder to add a custom suffix to the version string. 64 v8_embedder_string = "" 65 66 # Sets -dENABLE_DISASSEMBLER. 67 v8_enable_disassembler = "" 68 69 # Sets the number of internal fields on promise objects. 70 v8_promise_internal_field_count = 0 71 72 # Sets -dENABLE_GDB_JIT_INTERFACE. 73 v8_enable_gdbjit = "" 74 75 # Sets -dENABLE_VTUNE_JIT_INTERFACE. 76 v8_enable_vtunejit = false 77 78 # Sets -dENABLE_VTUNE_TRACEMARK. 79 v8_enable_vtunetracemark = false 80 81 # Sets -dENABLE_HANDLE_ZAPPING. 82 v8_enable_handle_zapping = is_debug 83 84 # Enable slow dchecks. 85 v8_enable_slow_dchecks = false 86 87 # Enable fast mksnapshot runs. 88 v8_enable_fast_mksnapshot = false 89 90 # Optimize code for Torque executable, even during a debug build. 91 v8_enable_fast_torque = "" 92 93 # Enable the registration of unwinding info for Windows x64 and ARM64. 94 v8_win64_unwinding_info = true 95 96 # Enable code comments for builtins in the snapshot (impacts performance). 97 v8_enable_snapshot_code_comments = false 98 99 # Enable native counters from the snapshot (impacts performance, sets 100 # -dV8_SNAPSHOT_NATIVE_CODE_COUNTERS). 101 # This option will generate extra code in the snapshot to increment counters, 102 # as per the --native-code-counters flag. 103 v8_enable_snapshot_native_code_counters = "" 104 105 # Enable code-generation-time checking of types in the CodeStubAssembler. 106 v8_enable_verify_csa = false 107 108 # Enable pointer compression (sets -dV8_COMPRESS_POINTERS). 109 v8_enable_pointer_compression = "" 110 v8_enable_31bit_smis_on_64bit_arch = false 111 112 # Disable arguments adaptor frame (sets -dV8_NO_ARGUMENTS_ADAPTOR). 113 v8_disable_arguments_adaptor = 114 v8_current_cpu == "x86" || v8_current_cpu == "x64" || 115 v8_current_cpu == "arm" || v8_current_cpu == "arm64" || 116 v8_current_cpu == "mipsel" || v8_current_cpu == "mips64el" 117 118 # Sets -dOBJECT_PRINT. 119 v8_enable_object_print = "" 120 121 # Sets -dV8_TRACE_MAPS. 122 v8_enable_trace_maps = "" 123 124 # Sets -dV8_ENABLE_CHECKS. 125 v8_enable_v8_checks = "" 126 127 # Sets -dV8_TRACE_IGNITION. 128 v8_enable_trace_ignition = false 129 130 # Sets -dV8_TRACE_FEEDBACK_UPDATES. 131 v8_enable_trace_feedback_updates = false 132 133 # Sets -dV8_ATOMIC_OBJECT_FIELD_WRITES and turns all field write operations 134 # into relaxed atomic operations. 135 v8_enable_atomic_object_field_writes = "" 136 137 # Sets -dV8_ATOMIC_MARKING_STATE 138 v8_enable_atomic_marking_state = "" 139 140 # Controls the default values of v8_enable_atomic_object_field_writes and 141 # v8_enable_concurrent_marking_state. See the default setting code below. 142 v8_enable_concurrent_marking = true 143 144 # Runs mksnapshot with --turbo-profiling. After building in this 145 # configuration, any subsequent run of d8 will output information about usage 146 # of basic blocks in builtins. 147 v8_enable_builtins_profiling = false 148 149 # Runs mksnapshot with --turbo-profiling-verbose. After building in this 150 # configuration, any subsequent run of d8 will output information about usage 151 # of basic blocks in builtins, including the schedule and disassembly of all 152 # used builtins. 153 v8_enable_builtins_profiling_verbose = false 154 155 # Provides the given V8 log file as an input to mksnapshot, where it can be 156 # used for profile-guided optimization of builtins. 157 # 158 # To do profile-guided optimizations of builtins: 159 # 1. Build with v8_enable_builtins_profiling = true 160 # 2. Run your chosen workload with the --turbo-profiling-log-builtins flag. 161 # For Chrome, the invocation might look like this: 162 # chrome --no-sandbox --disable-extensions 163 # --js-flags="--turbo-profiling-log-builtins --logfile=path/to/v8.log" 164 # "http://localhost/test-suite" 165 # 3. Optionally repeat step 2 for additional workloads, and concatenate all of 166 # the resulting log files into a single file. 167 # 4. Build again with v8_builtins_profiling_log_file set to the file created 168 # in steps 2-3. 169 v8_builtins_profiling_log_file = "" 170 171 # Enables various testing features. 172 v8_enable_test_features = "" 173 174 # With post mortem support enabled, metadata is embedded into libv8 that 175 # describes various parameters of the VM for use by debuggers. See 176 # tools/gen-postmortem-metadata.py for details. 177 v8_postmortem_support = false 178 179 # Use Siphash as added protection against hash flooding attacks. 180 v8_use_siphash = false 181 182 # Switches off inlining in V8. 183 v8_no_inline = false 184 185 # Override OS page size when generating snapshot 186 v8_os_page_size = "0" 187 188 # Similar to vfp but on MIPS. 189 v8_can_use_fpu_instructions = true 190 191 # Similar to the ARM hard float ABI but on MIPS. 192 v8_use_mips_abi_hardfloat = true 193 194 # Controls the threshold for on-heap/off-heap Typed Arrays. 195 v8_typed_array_max_size_in_heap = 64 196 197 v8_enable_gdbjit = ((v8_current_cpu == "x86" || v8_current_cpu == "x64") && 198 (is_linux || is_chromeos || is_mac)) || 199 (v8_current_cpu == "ppc64" && (is_linux || is_chromeos)) 200 201 # Temporary flag to allow embedders to update their microtasks scopes 202 # while rolling in a new version of V8. 203 v8_check_microtasks_scopes_consistency = "" 204 205 # Enable mitigations for executing untrusted code. 206 # Disabled by default on ia32 due to conflicting requirements with embedded 207 # builtins. Enabled by default on Android since it doesn't support 208 # site-isolation in Chrome and on simulator builds which test code generation 209 # on these platforms. 210 v8_untrusted_code_mitigations = 211 v8_current_cpu != "x86" && (is_android || target_is_simulator) 212 213 # Enable minor mark compact. 214 v8_enable_minor_mc = true 215 216 # Check that each header can be included in isolation (requires also 217 # setting the "check_v8_header_includes" gclient variable to run a 218 # specific hook). 219 v8_check_header_includes = false 220 221 # Enable sharing read-only space across isolates. 222 # Sets -DV8_SHARED_RO_HEAP. 223 v8_enable_shared_ro_heap = "" 224 225 # Enable lazy source positions by default. 226 v8_enable_lazy_source_positions = true 227 228 # Enable third party HEAP library 229 v8_enable_third_party_heap = false 230 231 # Libaries used by third party heap 232 v8_third_party_heap_libs = [] 233 234 # Source code used by third party heap 235 v8_third_party_heap_files = [] 236 237 # Disable write barriers when GCs are non-incremental and 238 # heap has single generation. 239 v8_disable_write_barriers = false 240 241 # Ensure that write barriers are always used. 242 # Useful for debugging purposes. 243 v8_enable_unconditional_write_barriers = false 244 245 # Redirect allocation in young generation so that there will be 246 # only one single generation. 247 v8_enable_single_generation = "" 248 249 # Use token threaded dispatch for the regular expression interpreter. 250 # Use switch-based dispatch if this is false 251 v8_enable_regexp_interpreter_threaded_dispatch = true 252 253 # Enable additional targets necessary for verification of torque 254 # file generation 255 v8_verify_torque_generation_invariance = false 256 257 # Disable all snapshot compression. 258 v8_enable_snapshot_compression = true 259 260 # Enable control-flow integrity features, such as pointer authentication for 261 # ARM64. 262 v8_control_flow_integrity = false 263 264 # Enable object names in cppgc for debug purposes. 265 cppgc_enable_object_names = false 266 267 # Enable heap reservation of size 4GB. Only possible for 64bit archs. 268 cppgc_enable_caged_heap = v8_current_cpu == "x64" || v8_current_cpu == "arm64" 269 270 # Enable young generation in cppgc. 271 cppgc_enable_young_generation = false 272 273 # Enable V8 zone compression experimental feature. 274 # Sets -DV8_COMPRESS_ZONES. 275 v8_enable_zone_compression = "" 276 277 # Enable V8 heap sandbox experimental feature. 278 # Sets -DV8_HEAP_SANDBOX. 279 v8_enable_heap_sandbox = "" 280 281 # Experimental feature for collecting per-class zone memory stats. 282 # Requires use_rtti = true 283 v8_enable_precise_zone_stats = false 284 285 # Experimental feature for always keeping prototypes in dict/"slow" mode 286 # Sets -DV8_DICT_MODE_PROTOTYPES 287 v8_dict_mode_prototypes = false 288} 289 290# Derived defaults. 291if (v8_enable_verify_heap == "") { 292 v8_enable_verify_heap = v8_enable_debugging_features 293} 294if (v8_enable_object_print == "") { 295 v8_enable_object_print = v8_enable_debugging_features 296} 297if (v8_enable_disassembler == "") { 298 v8_enable_disassembler = v8_enable_debugging_features 299} 300if (v8_enable_trace_maps == "") { 301 v8_enable_trace_maps = v8_enable_debugging_features 302} 303if (v8_enable_test_features == "") { 304 v8_enable_test_features = v8_enable_debugging_features || dcheck_always_on 305} 306if (v8_enable_v8_checks == "") { 307 v8_enable_v8_checks = v8_enable_debugging_features 308} 309if (v8_check_microtasks_scopes_consistency == "") { 310 v8_check_microtasks_scopes_consistency = 311 v8_enable_debugging_features || dcheck_always_on 312} 313if (v8_enable_snapshot_native_code_counters == "") { 314 v8_enable_snapshot_native_code_counters = v8_enable_debugging_features 315} 316if (v8_enable_pointer_compression == "") { 317 v8_enable_pointer_compression = 318 v8_current_cpu == "arm64" || v8_current_cpu == "x64" 319} 320if (v8_enable_fast_torque == "") { 321 v8_enable_fast_torque = v8_enable_fast_mksnapshot 322} 323if (v8_enable_zone_compression == "") { 324 v8_enable_zone_compression = false 325} 326if (v8_enable_heap_sandbox == "") { 327 v8_enable_heap_sandbox = false 328} 329if (v8_enable_single_generation == "") { 330 v8_enable_single_generation = v8_disable_write_barriers 331} 332if (v8_enable_atomic_object_field_writes == "") { 333 v8_enable_atomic_object_field_writes = v8_enable_concurrent_marking 334} 335if (v8_enable_atomic_marking_state == "") { 336 v8_enable_atomic_marking_state = v8_enable_concurrent_marking 337} 338assert(!v8_enable_concurrent_marking || v8_enable_atomic_object_field_writes, 339 "Concurrent marking requires atomic object field writes.") 340assert(!v8_enable_concurrent_marking || v8_enable_atomic_marking_state, 341 "Concurrent marking requires atomic marking state.") 342 343# Toggle pointer compression for correctness fuzzing when building the 344# clang_x64_pointer_compression toolchain. We'll correctness-compare the 345# default build with the clang_x64_pointer_compression build. 346if (v8_multi_arch_build && 347 rebase_path(get_label_info(":d8", "root_out_dir"), root_build_dir) == 348 "clang_x64_pointer_compression") { 349 v8_enable_pointer_compression = !v8_enable_pointer_compression 350} 351if (v8_enable_shared_ro_heap == "") { 352 v8_enable_shared_ro_heap = !v8_enable_pointer_compression 353} 354 355assert(!v8_disable_write_barriers || v8_enable_single_generation, 356 "Disabling write barriers works only with single generation") 357 358assert(v8_current_cpu != "x86" || !v8_untrusted_code_mitigations, 359 "Untrusted code mitigations are unsupported on ia32") 360 361assert(v8_current_cpu == "arm64" || !v8_control_flow_integrity, 362 "Control-flow integrity is only supported on arm64") 363 364if (v8_enable_shared_ro_heap && v8_enable_pointer_compression) { 365 assert( 366 is_linux || is_chromeos || is_android, 367 "Sharing read-only heap with pointer compression is only supported on Linux or Android") 368} 369 370assert(!v8_use_multi_snapshots || !v8_control_flow_integrity, 371 "Control-flow integrity does not support multisnapshots") 372 373assert(!v8_enable_heap_sandbox || v8_enable_pointer_compression, 374 "V8 Heap Sandbox requires pointer compression") 375 376assert(!v8_enable_unconditional_write_barriers || !v8_disable_write_barriers, 377 "Write barriers can't be both enabled and disabled") 378 379assert(!cppgc_enable_caged_heap || v8_current_cpu == "x64" || 380 v8_current_cpu == "arm64", 381 "CppGC caged heap requires 64bit platforms") 382 383assert(!cppgc_enable_young_generation || cppgc_enable_caged_heap, 384 "Young generation in CppGC requires caged heap") 385 386if (v8_enable_single_generation == true) { 387 assert( 388 v8_enable_unconditional_write_barriers || v8_disable_write_barriers, 389 "Requires unconditional write barriers or none (which disables incremental marking)") 390} 391 392assert(!v8_enable_conservative_stack_scanning || v8_enable_single_generation, 393 "Conservative stack scanning requires single generation") 394 395v8_random_seed = "314159265" 396v8_toolset_for_shell = "host" 397 398############################################################################### 399# Configurations 400# 401 402config("internal_config_base") { 403 # Only targets in this file and its subdirs can depend on this. 404 visibility = [ "./*" ] 405 406 configs = [ ":v8_tracing_config" ] 407 408 include_dirs = [ 409 ".", 410 "include", 411 "$target_gen_dir", 412 ] 413} 414 415config("internal_config") { 416 defines = [] 417 418 # Only targets in this file and its subdirs can depend on this. 419 visibility = [ "./*" ] 420 421 configs = [ 422 "//build/config/compiler:wexit_time_destructors", 423 ":internal_config_base", 424 ":v8_header_features", 425 ] 426 427 if (is_component_build) { 428 defines += [ "BUILDING_V8_SHARED" ] 429 } 430} 431 432# Should be applied to all targets that write trace events. 433config("v8_tracing_config") { 434 if (v8_use_perfetto) { 435 include_dirs = [ 436 "third_party/perfetto/include", 437 "$root_gen_dir/third_party/perfetto", 438 "$root_gen_dir/third_party/perfetto/build_config", 439 ] 440 } 441} 442 443# This config should be applied to code using the libplatform. 444config("libplatform_config") { 445 include_dirs = [ "include" ] 446 if (is_component_build) { 447 defines = [ "USING_V8_PLATFORM_SHARED" ] 448 } 449} 450 451# This config should be applied to code using the libbase. 452config("libbase_config") { 453 if (is_component_build) { 454 defines = [ "USING_V8_BASE_SHARED" ] 455 } 456 libs = [] 457 if (is_android && current_toolchain != host_toolchain) { 458 libs += [ "log" ] 459 } 460} 461 462# This config should be applied to code using the cppgc_base. 463config("cppgc_base_config") { 464 defines = [] 465 if (cppgc_enable_object_names) { 466 defines += [ "CPPGC_SUPPORTS_OBJECT_NAMES" ] 467 } 468 if (cppgc_enable_caged_heap) { 469 defines += [ "CPPGC_CAGED_HEAP" ] 470 } 471 if (cppgc_enable_young_generation) { 472 defines += [ "CPPGC_YOUNG_GENERATION" ] 473 } 474} 475 476# This config should be applied to code using the libsampler. 477config("libsampler_config") { 478 include_dirs = [ "include" ] 479} 480 481# This config should only be applied to code using V8 and not any V8 code 482# itself. 483config("external_config") { 484 defines = [] 485 configs = [ ":v8_header_features" ] 486 if (is_component_build) { 487 defines += [ "USING_V8_SHARED" ] 488 } 489 include_dirs = [ 490 "include", 491 "$target_gen_dir/include", 492 ] 493} 494 495# This config should only be applied to code that needs to be explicitly 496# aware of whether we are using startup data or not. 497config("external_startup_data") { 498 if (v8_use_external_startup_data) { 499 defines = [ "V8_USE_EXTERNAL_STARTUP_DATA" ] 500 } 501} 502 503# Put defines that are used in public headers here; public headers are 504# defined in "v8_headers" and are included by embedders of V8. 505config("v8_header_features") { 506 visibility = [ ":*" ] 507 508 defines = [] 509 510 if (v8_enable_v8_checks) { 511 defines += [ "V8_ENABLE_CHECKS" ] # Used in "include/v8.h". 512 } 513 if (v8_enable_pointer_compression) { 514 defines += [ "V8_COMPRESS_POINTERS" ] 515 } 516 if (v8_enable_pointer_compression || v8_enable_31bit_smis_on_64bit_arch) { 517 defines += [ "V8_31BIT_SMIS_ON_64BIT_ARCH" ] 518 } 519 if (v8_enable_zone_compression) { 520 defines += [ "V8_COMPRESS_ZONES" ] 521 } 522 if (v8_enable_heap_sandbox) { 523 defines += [ "V8_HEAP_SANDBOX" ] 524 } 525 if (v8_deprecation_warnings) { 526 defines += [ "V8_DEPRECATION_WARNINGS" ] 527 } 528 if (v8_imminent_deprecation_warnings) { 529 defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ] 530 } 531 if (v8_disable_arguments_adaptor) { 532 defines += [ "V8_NO_ARGUMENTS_ADAPTOR" ] 533 } 534} 535 536# Put defines here that are only used in our internal files and NEVER in 537# external headers that embedders (such as chromium and node) might include. 538config("features") { 539 # Only targets in this file and its subdirs can depend on this. 540 visibility = [ "./*" ] 541 542 defines = [] 543 544 configs = [ ":v8_header_features" ] 545 546 if (v8_embedder_string != "") { 547 defines += [ "V8_EMBEDDER_STRING=\"$v8_embedder_string\"" ] 548 } 549 if (v8_enable_disassembler) { 550 defines += [ "ENABLE_DISASSEMBLER" ] 551 } 552 if (v8_promise_internal_field_count != 0) { 553 defines += 554 [ "V8_PROMISE_INTERNAL_FIELD_COUNT=${v8_promise_internal_field_count}" ] 555 } 556 defines += 557 [ "V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=${v8_typed_array_max_size_in_heap}" ] 558 559 assert( 560 !v8_enable_raw_heap_snapshots, 561 "This flag is deprecated and is now available through the inspector interface as an argument to profiler's method `takeHeapSnapshot`. Consider using blink's flag `enable_additional_blink_object_names` to get better naming of internal objects.") 562 563 if (v8_enable_future) { 564 defines += [ "V8_ENABLE_FUTURE" ] 565 } 566 if (v8_enable_lite_mode) { 567 defines += [ "V8_LITE_MODE" ] 568 } 569 if (v8_enable_gdbjit) { 570 defines += [ "ENABLE_GDB_JIT_INTERFACE" ] 571 } 572 if (v8_enable_vtunejit) { 573 defines += [ "ENABLE_VTUNE_JIT_INTERFACE" ] 574 } 575 if (v8_enable_vtunetracemark) { 576 defines += [ "ENABLE_VTUNE_TRACEMARK" ] 577 } 578 if (v8_enable_minor_mc) { 579 defines += [ "ENABLE_MINOR_MC" ] 580 } 581 if (v8_enable_object_print) { 582 defines += [ "OBJECT_PRINT" ] 583 } 584 if (v8_enable_verify_heap) { 585 defines += [ "VERIFY_HEAP" ] 586 } 587 if (v8_enable_verify_predictable) { 588 defines += [ "VERIFY_PREDICTABLE" ] 589 } 590 if (v8_enable_trace_maps) { 591 defines += [ "V8_TRACE_MAPS" ] 592 } 593 if (v8_enable_trace_ignition) { 594 defines += [ "V8_TRACE_IGNITION" ] 595 } 596 if (v8_enable_trace_feedback_updates) { 597 defines += [ "V8_TRACE_FEEDBACK_UPDATES" ] 598 } 599 if (v8_enable_test_features) { 600 defines += [ "V8_ENABLE_ALLOCATION_TIMEOUT" ] 601 defines += [ "V8_ENABLE_FORCE_SLOW_PATH" ] 602 defines += [ "V8_ENABLE_DOUBLE_CONST_STORE_CHECK" ] 603 } 604 if (v8_enable_i18n_support) { 605 defines += [ "V8_INTL_SUPPORT" ] 606 } 607 if (v8_enable_handle_zapping) { 608 defines += [ "ENABLE_HANDLE_ZAPPING" ] 609 } 610 if (v8_enable_snapshot_native_code_counters) { 611 defines += [ "V8_SNAPSHOT_NATIVE_CODE_COUNTERS" ] 612 } 613 if (v8_enable_single_generation) { 614 defines += [ "V8_ENABLE_SINGLE_GENERATION" ] 615 } 616 if (v8_enable_conservative_stack_scanning) { 617 defines += [ "V8_ENABLE_CONSERVATIVE_STACK_SCANNING" ] 618 } 619 if (v8_disable_write_barriers) { 620 defines += [ "V8_DISABLE_WRITE_BARRIERS" ] 621 } 622 if (v8_enable_third_party_heap) { 623 defines += [ "V8_ENABLE_THIRD_PARTY_HEAP" ] 624 } 625 if (v8_use_external_startup_data) { 626 defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] 627 } 628 if (v8_enable_atomic_object_field_writes) { 629 defines += [ "V8_ATOMIC_OBJECT_FIELD_WRITES" ] 630 } 631 if (v8_enable_atomic_marking_state) { 632 defines += [ "V8_ATOMIC_MARKING_STATE" ] 633 } 634 if (v8_enable_lazy_source_positions) { 635 defines += [ "V8_ENABLE_LAZY_SOURCE_POSITIONS" ] 636 } 637 if (v8_check_microtasks_scopes_consistency) { 638 defines += [ "V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY" ] 639 } 640 if (v8_use_multi_snapshots) { 641 defines += [ "V8_MULTI_SNAPSHOTS" ] 642 } 643 if (v8_use_siphash) { 644 defines += [ "V8_USE_SIPHASH" ] 645 } 646 if (v8_enable_shared_ro_heap) { 647 defines += [ "V8_SHARED_RO_HEAP" ] 648 } 649 if (v8_use_perfetto) { 650 defines += [ "V8_USE_PERFETTO" ] 651 } 652 if (v8_win64_unwinding_info) { 653 defines += [ "V8_WIN64_UNWINDING_INFO" ] 654 } 655 if (v8_enable_regexp_interpreter_threaded_dispatch) { 656 defines += [ "V8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH" ] 657 } 658 if (v8_enable_snapshot_compression) { 659 defines += [ "V8_SNAPSHOT_COMPRESSION" ] 660 } 661 if (v8_control_flow_integrity) { 662 defines += [ "V8_ENABLE_CONTROL_FLOW_INTEGRITY" ] 663 } 664 if (v8_enable_wasm_gdb_remote_debugging) { 665 defines += [ "V8_ENABLE_WASM_GDB_REMOTE_DEBUGGING" ] 666 } 667 if (v8_enable_precise_zone_stats) { 668 defines += [ "V8_ENABLE_PRECISE_ZONE_STATS" ] 669 } 670 if (v8_fuzzilli) { 671 defines += [ "V8_FUZZILLI" ] 672 } 673 if (v8_dict_mode_prototypes) { 674 defines += [ "V8_DICT_MODE_PROTOTYPES" ] 675 } 676} 677 678config("toolchain") { 679 # Only targets in this file and its subdirs can depend on this. 680 visibility = [ "./*" ] 681 682 defines = [] 683 cflags = [] 684 ldflags = [] 685 686 if (v8_current_cpu == "arm") { 687 defines += [ "V8_TARGET_ARCH_ARM" ] 688 if (arm_version >= 7) { 689 defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ] 690 } 691 if (arm_fpu == "vfpv3-d16") { 692 defines += [ "CAN_USE_VFP3_INSTRUCTIONS" ] 693 } else if (arm_fpu == "vfpv3") { 694 defines += [ 695 "CAN_USE_VFP3_INSTRUCTIONS", 696 "CAN_USE_VFP32DREGS", 697 ] 698 } else if (arm_fpu == "neon") { 699 defines += [ 700 "CAN_USE_VFP3_INSTRUCTIONS", 701 "CAN_USE_VFP32DREGS", 702 "CAN_USE_NEON", 703 ] 704 } 705 706 # TODO(jochen): Add support for arm_test_noprobe. 707 708 if (current_cpu != "arm") { 709 # These defines ares used for the ARM simulator. 710 if (arm_float_abi == "hard") { 711 defines += [ "USE_EABI_HARDFLOAT=1" ] 712 } else if (arm_float_abi == "softfp") { 713 defines += [ "USE_EABI_HARDFLOAT=0" ] 714 } 715 } 716 } 717 if (v8_current_cpu == "arm64") { 718 defines += [ "V8_TARGET_ARCH_ARM64" ] 719 if (v8_control_flow_integrity) { 720 # TODO(v8:10026): Enable this in src/build. 721 if (current_cpu == "arm64") { 722 cflags += [ "-mbranch-protection=standard" ] 723 } 724 } 725 } 726 727 # Mips64el/mipsel simulators. 728 if (target_is_simulator && 729 (v8_current_cpu == "mipsel" || v8_current_cpu == "mips64el")) { 730 defines += [ "_MIPS_TARGET_SIMULATOR" ] 731 } 732 733 if (v8_current_cpu == "mipsel" || v8_current_cpu == "mips") { 734 defines += [ "V8_TARGET_ARCH_MIPS" ] 735 if (v8_can_use_fpu_instructions) { 736 defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] 737 } 738 if (v8_use_mips_abi_hardfloat) { 739 defines += [ 740 "__mips_hard_float=1", 741 "CAN_USE_FPU_INSTRUCTIONS", 742 ] 743 } else { 744 defines += [ "__mips_soft_float=1" ] 745 } 746 if (mips_arch_variant == "r6") { 747 defines += [ 748 "_MIPS_ARCH_MIPS32R6", 749 "FPU_MODE_FP64", 750 ] 751 if (mips_use_msa) { 752 defines += [ "_MIPS_MSA" ] 753 } 754 } else if (mips_arch_variant == "r2") { 755 defines += [ "_MIPS_ARCH_MIPS32R2" ] 756 if (mips_fpu_mode == "fp64") { 757 defines += [ "FPU_MODE_FP64" ] 758 } else if (mips_fpu_mode == "fpxx") { 759 defines += [ "FPU_MODE_FPXX" ] 760 } else if (mips_fpu_mode == "fp32") { 761 defines += [ "FPU_MODE_FP32" ] 762 } 763 } else if (mips_arch_variant == "r1") { 764 defines += [ "FPU_MODE_FP32" ] 765 } 766 767 # TODO(jochen): Add support for mips_arch_variant rx and loongson. 768 } 769 770 if (v8_current_cpu == "mips64el" || v8_current_cpu == "mips64") { 771 defines += [ "V8_TARGET_ARCH_MIPS64" ] 772 if (v8_can_use_fpu_instructions) { 773 defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] 774 } 775 if (mips_use_msa) { 776 defines += [ "_MIPS_MSA" ] 777 } 778 if (host_byteorder == "little") { 779 defines += [ "V8_TARGET_ARCH_MIPS64_LE" ] 780 } else if (host_byteorder == "big") { 781 defines += [ "V8_TARGET_ARCH_MIPS64_BE" ] 782 } 783 if (v8_use_mips_abi_hardfloat) { 784 defines += [ 785 "__mips_hard_float=1", 786 "CAN_USE_FPU_INSTRUCTIONS", 787 ] 788 } else { 789 defines += [ "__mips_soft_float=1" ] 790 } 791 if (mips_arch_variant == "r6") { 792 defines += [ "_MIPS_ARCH_MIPS64R6" ] 793 } else if (mips_arch_variant == "r2") { 794 defines += [ "_MIPS_ARCH_MIPS64R2" ] 795 } 796 } 797 if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { 798 defines += [ "V8_TARGET_ARCH_S390" ] 799 cflags += [ "-ffp-contract=off" ] 800 if (v8_current_cpu == "s390x") { 801 defines += [ "V8_TARGET_ARCH_S390X" ] 802 } 803 if (host_byteorder == "little") { 804 defines += [ "V8_TARGET_ARCH_S390_LE_SIM" ] 805 } else { 806 cflags += [ "-march=z196" ] 807 } 808 } 809 if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") { 810 if (v8_current_cpu == "ppc") { 811 defines += [ "V8_TARGET_ARCH_PPC" ] 812 } else if (v8_current_cpu == "ppc64") { 813 defines += [ "V8_TARGET_ARCH_PPC64" ] 814 } 815 if (host_byteorder == "little") { 816 defines += [ "V8_TARGET_ARCH_PPC_LE" ] 817 } else if (host_byteorder == "big") { 818 defines += [ "V8_TARGET_ARCH_PPC_BE" ] 819 if (current_os == "aix") { 820 cflags += [ 821 # Work around AIX ceil, trunc and round oddities. 822 "-mcpu=power5+", 823 "-mfprnd", 824 825 # Work around AIX assembler popcntb bug. 826 "-mno-popcntb", 827 ] 828 } 829 } 830 } 831 832 if (v8_current_cpu == "x86") { 833 defines += [ "V8_TARGET_ARCH_IA32" ] 834 if (is_win) { 835 # Ensure no surprising artifacts from 80bit double math with x86. 836 cflags += [ "/arch:SSE2" ] 837 } 838 } 839 if (v8_current_cpu == "x64") { 840 defines += [ "V8_TARGET_ARCH_X64" ] 841 if (is_win) { 842 # Increase the initial stack size. The default is 1MB, this is 2MB. This 843 # applies only to executables and shared libraries produced by V8 since 844 # ldflags are not pushed to dependants. 845 ldflags += [ "/STACK:2097152" ] 846 } 847 } 848 if (is_android && v8_android_log_stdout) { 849 defines += [ "V8_ANDROID_LOG_STDOUT" ] 850 } 851 852 # V8_TARGET_OS_ defines. The target OS may differ from host OS e.g. in 853 # mksnapshot. We additionally set V8_HAVE_TARGET_OS to determine that a 854 # target OS has in fact been set; otherwise we internally assume that target 855 # OS == host OS (see v8config.h). 856 if (target_os == "android") { 857 defines += [ "V8_HAVE_TARGET_OS" ] 858 defines += [ "V8_TARGET_OS_ANDROID" ] 859 } else if (target_os == "fuchsia") { 860 defines += [ "V8_HAVE_TARGET_OS" ] 861 defines += [ "V8_TARGET_OS_FUCHSIA" ] 862 } else if (target_os == "ios") { 863 defines += [ "V8_HAVE_TARGET_OS" ] 864 defines += [ "V8_TARGET_OS_IOS" ] 865 } else if (target_os == "linux") { 866 defines += [ "V8_HAVE_TARGET_OS" ] 867 defines += [ "V8_TARGET_OS_LINUX" ] 868 } else if (target_os == "mac") { 869 defines += [ "V8_HAVE_TARGET_OS" ] 870 defines += [ "V8_TARGET_OS_MACOSX" ] 871 } else if (target_os == "win") { 872 defines += [ "V8_HAVE_TARGET_OS" ] 873 defines += [ "V8_TARGET_OS_WIN" ] 874 } 875 876 # TODO(jochen): Support v8_enable_prof on Windows. 877 # TODO(jochen): Add support for compiling with simulators. 878 879 if (v8_enable_debugging_features) { 880 if ((is_linux || is_chromeos) && v8_enable_backtrace) { 881 ldflags += [ "-rdynamic" ] 882 } 883 884 defines += [ "DEBUG" ] 885 if (v8_enable_slow_dchecks) { 886 defines += [ "ENABLE_SLOW_DCHECKS" ] 887 } 888 } else if (dcheck_always_on) { 889 defines += [ "DEBUG" ] 890 } 891 892 if (v8_enable_verify_csa) { 893 defines += [ "ENABLE_VERIFY_CSA" ] 894 } 895 896 if (!v8_untrusted_code_mitigations) { 897 defines += [ "DISABLE_UNTRUSTED_CODE_MITIGATIONS" ] 898 } 899 900 if (v8_no_inline) { 901 if (is_win) { 902 cflags += [ "/Ob0" ] 903 } else { 904 cflags += [ 905 "-fno-inline-functions", 906 "-fno-inline", 907 ] 908 } 909 } 910 911 if (is_clang) { 912 cflags += [ "-Wmissing-field-initializers" ] 913 914 if (v8_current_cpu != "mips" && v8_current_cpu != "mipsel") { 915 # We exclude MIPS because the IsMipsArchVariant macro causes trouble. 916 cflags += [ "-Wunreachable-code" ] 917 } 918 919 if (v8_current_cpu == "x64" || v8_current_cpu == "arm64" || 920 v8_current_cpu == "mips64el") { 921 cflags += [ "-Wshorten-64-to-32" ] 922 } 923 } 924 925 if (is_win) { 926 cflags += [ 927 "/wd4245", # Conversion with signed/unsigned mismatch. 928 "/wd4267", # Conversion with possible loss of data. 929 "/wd4324", # Padding structure due to alignment. 930 "/wd4701", # Potentially uninitialized local variable. 931 "/wd4702", # Unreachable code. 932 "/wd4703", # Potentially uninitialized local pointer variable. 933 "/wd4709", # Comma operator within array index expr (bugged). 934 "/wd4714", # Function marked forceinline not inlined. 935 936 # MSVC assumes that control can get past an exhaustive switch and then 937 # warns if there's no return there (see https://crbug.com/v8/7658) 938 "/wd4715", # Not all control paths return a value. 939 940 "/wd4718", # Recursive call has no side-effect. 941 "/wd4723", # https://crbug.com/v8/7771 942 "/wd4724", # https://crbug.com/v8/7771 943 "/wd4800", # Forcing value to bool. 944 ] 945 } 946 947 if (!is_clang && is_win) { 948 cflags += [ "/wd4506" ] # Benign "no definition for inline function" 949 } 950 951 if (!is_clang && !is_win) { 952 cflags += [ 953 # Disable gcc warnings for optimizations based on the assumption that 954 # signed overflow does not occur. Generates false positives (see 955 # http://crbug.com/v8/6341). 956 "-Wno-strict-overflow", 957 958 # GCC assumes that control can get past an exhaustive switch and then 959 # warns if there's no return there (see https://crbug.com/v8/7658). 960 "-Wno-return-type", 961 962 # Disable gcc warnings for using enum constant in boolean context. 963 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97266 964 "-Wno-int-in-bool-context", 965 ] 966 } 967 968 # Chromium uses a hand-picked subset of UBSan coverage. We want everything. 969 if (is_ubsan) { 970 cflags += [ "-fsanitize=undefined" ] 971 } 972} 973 974# For code that is hot during mksnapshot. In fast-mksnapshot builds, we 975# optimize some files even in debug builds to speed up mksnapshot times. 976config("always_optimize") { 977 configs = [ ":internal_config" ] 978 979 # TODO(crbug.com/621335) Rework this so that we don't have the confusion 980 # between "optimize_speed" and "optimize_max". 981 if (((is_posix && !is_android) || is_fuchsia) && !using_sanitizer) { 982 configs += [ "//build/config/compiler:optimize_speed" ] 983 } else { 984 configs += [ "//build/config/compiler:optimize_max" ] 985 } 986} 987 988# Configs for code coverage with gcov. Separate configs for cflags and ldflags 989# to selectively influde cflags in non-test targets only. 990config("v8_gcov_coverage_cflags") { 991 cflags = [ 992 "-fprofile-arcs", 993 "-ftest-coverage", 994 ] 995} 996 997config("v8_gcov_coverage_ldflags") { 998 ldflags = [ "-fprofile-arcs" ] 999} 1000 1001############################################################################### 1002# Actions 1003# 1004 1005# Only for Windows clang builds. Converts the embedded.S file produced by 1006# mksnapshot into an embedded.cc file with corresponding inline assembly. 1007template("asm_to_inline_asm") { 1008 name = target_name 1009 if (name == "default") { 1010 suffix = "" 1011 } else { 1012 suffix = "_$name" 1013 } 1014 1015 action("asm_to_inline_asm_" + name) { 1016 visibility = [ ":*" ] # Only targets in this file can depend on this. 1017 1018 assert(emit_builtins_as_inline_asm) 1019 1020 script = "tools/snapshot/asm_to_inline_asm.py" 1021 deps = [ ":run_mksnapshot_" + name ] 1022 sources = [ "$target_gen_dir/embedded${suffix}.S" ] 1023 outputs = [ "$target_gen_dir/embedded${suffix}.cc" ] 1024 args = invoker.args 1025 args += [ 1026 rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir), 1027 rebase_path("$target_gen_dir/embedded${suffix}.cc", root_build_dir), 1028 ] 1029 } 1030} 1031 1032if (is_android && enable_java_templates) { 1033 android_assets("v8_external_startup_data_assets") { 1034 if (v8_use_external_startup_data) { 1035 # We don't support side-by-side snapshots on Android within Chromium. 1036 assert(!v8_use_multi_snapshots) 1037 deps = [ "//v8" ] 1038 renaming_sources = [ "$root_out_dir/snapshot_blob.bin" ] 1039 if (current_cpu == "arm" || current_cpu == "x86" || 1040 current_cpu == "mipsel") { 1041 renaming_destinations = [ "snapshot_blob_32.bin" ] 1042 } else { 1043 renaming_destinations = [ "snapshot_blob_64.bin" ] 1044 } 1045 disable_compression = true 1046 } 1047 } 1048} 1049 1050action("postmortem-metadata") { 1051 # Only targets in this file and the top-level visibility target can 1052 # depend on this. 1053 visibility = [ 1054 ":*", 1055 "//:gn_visibility", 1056 ] 1057 1058 script = "tools/gen-postmortem-metadata.py" 1059 1060 # NOSORT 1061 sources = [ 1062 "$target_gen_dir/torque-generated/instance-types.h", 1063 "src/objects/allocation-site.h", 1064 "src/objects/allocation-site-inl.h", 1065 "src/objects/cell.h", 1066 "src/objects/cell-inl.h", 1067 "src/objects/code.h", 1068 "src/objects/code-inl.h", 1069 "src/objects/data-handler.h", 1070 "src/objects/data-handler-inl.h", 1071 "src/objects/descriptor-array.h", 1072 "src/objects/descriptor-array-inl.h", 1073 "src/objects/feedback-cell.h", 1074 "src/objects/feedback-cell-inl.h", 1075 "src/objects/fixed-array.h", 1076 "src/objects/fixed-array-inl.h", 1077 "src/objects/heap-number.h", 1078 "src/objects/heap-number-inl.h", 1079 "src/objects/heap-object.h", 1080 "src/objects/heap-object-inl.h", 1081 "src/objects/instance-type.h", 1082 "src/objects/js-array-buffer.h", 1083 "src/objects/js-array-buffer-inl.h", 1084 "src/objects/js-array.h", 1085 "src/objects/js-array-inl.h", 1086 "src/objects/js-function-inl.h", 1087 "src/objects/js-function.cc", 1088 "src/objects/js-function.h", 1089 "src/objects/js-objects.cc", 1090 "src/objects/js-objects.h", 1091 "src/objects/js-objects-inl.h", 1092 "src/objects/js-promise.h", 1093 "src/objects/js-promise-inl.h", 1094 "src/objects/js-regexp.cc", 1095 "src/objects/js-regexp.h", 1096 "src/objects/js-regexp-inl.h", 1097 "src/objects/js-regexp-string-iterator.h", 1098 "src/objects/js-regexp-string-iterator-inl.h", 1099 "src/objects/map.cc", 1100 "src/objects/map.h", 1101 "src/objects/map-inl.h", 1102 "src/objects/name.h", 1103 "src/objects/name-inl.h", 1104 "src/objects/objects.h", 1105 "src/objects/objects-inl.h", 1106 "src/objects/oddball.h", 1107 "src/objects/oddball-inl.h", 1108 "src/objects/primitive-heap-object.h", 1109 "src/objects/primitive-heap-object-inl.h", 1110 "src/objects/scope-info.h", 1111 "src/objects/script.h", 1112 "src/objects/script-inl.h", 1113 "src/objects/shared-function-info.cc", 1114 "src/objects/shared-function-info.h", 1115 "src/objects/shared-function-info-inl.h", 1116 "src/objects/string.cc", 1117 "src/objects/string-comparator.cc", 1118 "src/objects/string-comparator.h", 1119 "src/objects/string.h", 1120 "src/objects/string-inl.h", 1121 "src/objects/struct.h", 1122 "src/objects/struct-inl.h", 1123 ] 1124 1125 outputs = [ "$target_gen_dir/debug-support.cc" ] 1126 1127 args = rebase_path(outputs, root_build_dir) + 1128 rebase_path(sources, root_build_dir) 1129 1130 deps = [ ":run_torque" ] 1131} 1132 1133torque_files = [ 1134 "src/builtins/aggregate-error.tq", 1135 "src/builtins/array-copywithin.tq", 1136 "src/builtins/array-every.tq", 1137 "src/builtins/array-filter.tq", 1138 "src/builtins/array-find.tq", 1139 "src/builtins/array-findindex.tq", 1140 "src/builtins/array-foreach.tq", 1141 "src/builtins/array-from.tq", 1142 "src/builtins/array-isarray.tq", 1143 "src/builtins/array-join.tq", 1144 "src/builtins/array-lastindexof.tq", 1145 "src/builtins/array-map.tq", 1146 "src/builtins/array-of.tq", 1147 "src/builtins/array-reduce-right.tq", 1148 "src/builtins/array-reduce.tq", 1149 "src/builtins/array-reverse.tq", 1150 "src/builtins/array-shift.tq", 1151 "src/builtins/array-slice.tq", 1152 "src/builtins/array-some.tq", 1153 "src/builtins/array-splice.tq", 1154 "src/builtins/array-unshift.tq", 1155 "src/builtins/array.tq", 1156 "src/builtins/arraybuffer.tq", 1157 "src/builtins/base.tq", 1158 "src/builtins/boolean.tq", 1159 "src/builtins/builtins-bigint.tq", 1160 "src/builtins/builtins-string.tq", 1161 "src/builtins/cast.tq", 1162 "src/builtins/collections.tq", 1163 "src/builtins/constructor.tq", 1164 "src/builtins/conversion.tq", 1165 "src/builtins/convert.tq", 1166 "src/builtins/console.tq", 1167 "src/builtins/data-view.tq", 1168 "src/builtins/finalization-registry.tq", 1169 "src/builtins/frames.tq", 1170 "src/builtins/frame-arguments.tq", 1171 "src/builtins/function.tq", 1172 "src/builtins/growable-fixed-array.tq", 1173 "src/builtins/ic-callable.tq", 1174 "src/builtins/ic-dynamic-map-checks.tq", 1175 "src/builtins/ic.tq", 1176 "src/builtins/internal-coverage.tq", 1177 "src/builtins/internal.tq", 1178 "src/builtins/iterator.tq", 1179 "src/builtins/math.tq", 1180 "src/builtins/number.tq", 1181 "src/builtins/object-fromentries.tq", 1182 "src/builtins/object.tq", 1183 "src/builtins/promise-abstract-operations.tq", 1184 "src/builtins/promise-all.tq", 1185 "src/builtins/promise-all-element-closure.tq", 1186 "src/builtins/promise-any.tq", 1187 "src/builtins/promise-constructor.tq", 1188 "src/builtins/promise-finally.tq", 1189 "src/builtins/promise-misc.tq", 1190 "src/builtins/promise-race.tq", 1191 "src/builtins/promise-reaction-job.tq", 1192 "src/builtins/promise-resolve.tq", 1193 "src/builtins/promise-then.tq", 1194 "src/builtins/promise-jobs.tq", 1195 "src/builtins/proxy-constructor.tq", 1196 "src/builtins/proxy-delete-property.tq", 1197 "src/builtins/proxy-get-property.tq", 1198 "src/builtins/proxy-get-prototype-of.tq", 1199 "src/builtins/proxy-has-property.tq", 1200 "src/builtins/proxy-is-extensible.tq", 1201 "src/builtins/proxy-prevent-extensions.tq", 1202 "src/builtins/proxy-revocable.tq", 1203 "src/builtins/proxy-revoke.tq", 1204 "src/builtins/proxy-set-property.tq", 1205 "src/builtins/proxy-set-prototype-of.tq", 1206 "src/builtins/proxy.tq", 1207 "src/builtins/reflect.tq", 1208 "src/builtins/regexp-exec.tq", 1209 "src/builtins/regexp-match-all.tq", 1210 "src/builtins/regexp-match.tq", 1211 "src/builtins/regexp-replace.tq", 1212 "src/builtins/regexp-search.tq", 1213 "src/builtins/regexp-source.tq", 1214 "src/builtins/regexp-split.tq", 1215 "src/builtins/regexp-test.tq", 1216 "src/builtins/regexp.tq", 1217 "src/builtins/string-endswith.tq", 1218 "src/builtins/string-html.tq", 1219 "src/builtins/string-iterator.tq", 1220 "src/builtins/string-pad.tq", 1221 "src/builtins/string-repeat.tq", 1222 "src/builtins/string-replaceall.tq", 1223 "src/builtins/string-slice.tq", 1224 "src/builtins/string-startswith.tq", 1225 "src/builtins/string-substr.tq", 1226 "src/builtins/string-substring.tq", 1227 "src/builtins/string-trim.tq", 1228 "src/builtins/symbol.tq", 1229 "src/builtins/torque-internal.tq", 1230 "src/builtins/typed-array-createtypedarray.tq", 1231 "src/builtins/typed-array-every.tq", 1232 "src/builtins/typed-array-entries.tq", 1233 "src/builtins/typed-array-filter.tq", 1234 "src/builtins/typed-array-find.tq", 1235 "src/builtins/typed-array-findindex.tq", 1236 "src/builtins/typed-array-foreach.tq", 1237 "src/builtins/typed-array-from.tq", 1238 "src/builtins/typed-array-keys.tq", 1239 "src/builtins/typed-array-of.tq", 1240 "src/builtins/typed-array-reduce.tq", 1241 "src/builtins/typed-array-reduceright.tq", 1242 "src/builtins/typed-array-set.tq", 1243 "src/builtins/typed-array-slice.tq", 1244 "src/builtins/typed-array-some.tq", 1245 "src/builtins/typed-array-sort.tq", 1246 "src/builtins/typed-array-subarray.tq", 1247 "src/builtins/typed-array-values.tq", 1248 "src/builtins/typed-array.tq", 1249 "src/builtins/wasm.tq", 1250 "src/builtins/weak-ref.tq", 1251 "src/ic/handler-configuration.tq", 1252 "src/objects/allocation-site.tq", 1253 "src/objects/api-callbacks.tq", 1254 "src/objects/arguments.tq", 1255 "src/objects/bigint.tq", 1256 "src/objects/cell.tq", 1257 "src/objects/code.tq", 1258 "src/objects/contexts.tq", 1259 "src/objects/data-handler.tq", 1260 "src/objects/debug-objects.tq", 1261 "src/objects/descriptor-array.tq", 1262 "src/objects/embedder-data-array.tq", 1263 "src/objects/feedback-cell.tq", 1264 "src/objects/feedback-vector.tq", 1265 "src/objects/fixed-array.tq", 1266 "src/objects/foreign.tq", 1267 "src/objects/free-space.tq", 1268 "src/objects/heap-number.tq", 1269 "src/objects/heap-object.tq", 1270 "src/objects/js-array-buffer.tq", 1271 "src/objects/js-array.tq", 1272 "src/objects/js-collection-iterator.tq", 1273 "src/objects/js-collection.tq", 1274 "src/objects/js-function.tq", 1275 "src/objects/js-generator.tq", 1276 "src/objects/js-objects.tq", 1277 "src/objects/js-promise.tq", 1278 "src/objects/js-proxy.tq", 1279 "src/objects/js-regexp-string-iterator.tq", 1280 "src/objects/js-regexp.tq", 1281 "src/objects/js-weak-refs.tq", 1282 "src/objects/literal-objects.tq", 1283 "src/objects/map.tq", 1284 "src/objects/microtask.tq", 1285 "src/objects/module.tq", 1286 "src/objects/name.tq", 1287 "src/objects/oddball.tq", 1288 "src/objects/ordered-hash-table.tq", 1289 "src/objects/primitive-heap-object.tq", 1290 "src/objects/promise.tq", 1291 "src/objects/property-array.tq", 1292 "src/objects/property-cell.tq", 1293 "src/objects/property-descriptor-object.tq", 1294 "src/objects/prototype-info.tq", 1295 "src/objects/regexp-match-info.tq", 1296 "src/objects/scope-info.tq", 1297 "src/objects/script.tq", 1298 "src/objects/shared-function-info.tq", 1299 "src/objects/source-text-module.tq", 1300 "src/objects/stack-frame-info.tq", 1301 "src/objects/string.tq", 1302 "src/objects/struct.tq", 1303 "src/objects/synthetic-module.tq", 1304 "src/objects/template-objects.tq", 1305 "src/objects/templates.tq", 1306 "src/objects/torque-defined-classes.tq", 1307 "src/wasm/wasm-objects.tq", 1308 "test/torque/test-torque.tq", 1309 "third_party/v8/builtins/array-sort.tq", 1310] 1311 1312if (v8_enable_i18n_support) { 1313 torque_files += [ 1314 "src/objects/intl-objects.tq", 1315 "src/objects/js-break-iterator.tq", 1316 "src/objects/js-collator.tq", 1317 "src/objects/js-date-time-format.tq", 1318 "src/objects/js-display-names.tq", 1319 "src/objects/js-list-format.tq", 1320 "src/objects/js-locale.tq", 1321 "src/objects/js-number-format.tq", 1322 "src/objects/js-plural-rules.tq", 1323 "src/objects/js-relative-time-format.tq", 1324 "src/objects/js-segment-iterator.tq", 1325 "src/objects/js-segmenter.tq", 1326 "src/objects/js-segments.tq", 1327 ] 1328} 1329 1330# Template for running torque 1331# When building with v8_verify_torque_generation_invariance=true we need 1332# to be able to run torque for both 32 and 64 bits in the same build 1333template("run_torque") { 1334 if (target_name == "") { 1335 suffix = "" 1336 } else { 1337 suffix = "_$target_name" 1338 } 1339 1340 toolchain = invoker.toolchain 1341 1342 action("run_torque" + suffix) { 1343 visibility = [ 1344 ":*", 1345 "test/cctest/:*", 1346 "tools/debug_helper/:*", 1347 "tools/gcmole/:*", 1348 ] 1349 1350 deps = [ ":torque($toolchain)" ] 1351 1352 script = "tools/run.py" 1353 1354 sources = torque_files 1355 1356 destination_folder = "$target_gen_dir/torque-generated$suffix" 1357 1358 files = [ 1359 "$target_gen_dir/torque-generated/bit-fields.h", 1360 "$target_gen_dir/torque-generated/builtin-definitions.h", 1361 "$target_gen_dir/torque-generated/interface-descriptors.inc", 1362 "$target_gen_dir/torque-generated/factory.cc", 1363 "$target_gen_dir/torque-generated/factory.inc", 1364 "$target_gen_dir/torque-generated/field-offsets.h", 1365 "$target_gen_dir/torque-generated/class-verifiers.cc", 1366 "$target_gen_dir/torque-generated/class-verifiers.h", 1367 "$target_gen_dir/torque-generated/enum-verifiers.cc", 1368 "$target_gen_dir/torque-generated/objects-printer.cc", 1369 "$target_gen_dir/torque-generated/objects-body-descriptors-inl.inc", 1370 "$target_gen_dir/torque-generated/class-debug-readers.cc", 1371 "$target_gen_dir/torque-generated/class-debug-readers.h", 1372 "$target_gen_dir/torque-generated/exported-macros-assembler.cc", 1373 "$target_gen_dir/torque-generated/exported-macros-assembler.h", 1374 "$target_gen_dir/torque-generated/csa-types.h", 1375 "$target_gen_dir/torque-generated/instance-types.h", 1376 "$target_gen_dir/torque-generated/runtime-macros.cc", 1377 "$target_gen_dir/torque-generated/runtime-macros.h", 1378 "$target_gen_dir/torque-generated/class-forward-declarations.h", 1379 ] 1380 1381 outputs = [] 1382 foreach(file, files) { 1383 outputs += [ string_replace(file, 1384 "$target_gen_dir/torque-generated", 1385 destination_folder) ] 1386 } 1387 1388 foreach(file, torque_files) { 1389 filetq = string_replace(file, ".tq", "-tq") 1390 outputs += [ 1391 "$target_gen_dir/torque-generated/$filetq-csa.cc", 1392 "$target_gen_dir/torque-generated/$filetq-csa.h", 1393 "$target_gen_dir/torque-generated/$filetq-inl.inc", 1394 "$target_gen_dir/torque-generated/$filetq.cc", 1395 "$target_gen_dir/torque-generated/$filetq.inc", 1396 ] 1397 } 1398 1399 args = [ 1400 "./" + rebase_path( 1401 get_label_info(":torque($toolchain)", "root_out_dir") + "/torque", 1402 root_build_dir), 1403 "-o", 1404 rebase_path("$destination_folder", root_build_dir), 1405 "-v8-root", 1406 rebase_path(".", root_build_dir), 1407 ] 1408 if (defined(invoker.args)) { 1409 args += invoker.args 1410 } 1411 args += torque_files 1412 } 1413} 1414 1415# Default run_torque action 1416run_torque("") { 1417 toolchain = v8_generator_toolchain 1418} 1419 1420if (v8_verify_torque_generation_invariance) { 1421 run_torque("x86") { 1422 toolchain = "//build/toolchain/linux:clang_x86" 1423 } 1424 1425 run_torque("x64") { 1426 args = [ "-m32" ] 1427 toolchain = "//build/toolchain/linux:clang_x64" 1428 } 1429 1430 action("compare_torque_runs") { 1431 deps = [ 1432 ":run_torque_x64", 1433 ":run_torque_x86", 1434 ] 1435 report_file = "$target_gen_dir/torque_comparison_results.txt" 1436 script = "tools/compare_torque_output.py" 1437 args = [ 1438 rebase_path("$target_gen_dir/torque-generated_x64", root_build_dir), 1439 rebase_path("$target_gen_dir/torque-generated_x86", root_build_dir), 1440 rebase_path(report_file, root_build_dir), 1441 ] 1442 outputs = [ report_file ] 1443 } 1444} 1445 1446group("v8_maybe_icu") { 1447 if (v8_enable_i18n_support) { 1448 public_deps = [ "//third_party/icu" ] 1449 } 1450} 1451 1452v8_source_set("torque_generated_initializers") { 1453 visibility = [ ":*" ] # Only targets in this file can depend on this. 1454 1455 deps = [ 1456 ":generate_bytecode_builtins_list", 1457 ":run_torque", 1458 ":v8_tracing", 1459 ] 1460 1461 public_deps = [ ":v8_maybe_icu" ] 1462 1463 sources = [ 1464 "$target_gen_dir/torque-generated/csa-types.h", 1465 "$target_gen_dir/torque-generated/enum-verifiers.cc", 1466 "$target_gen_dir/torque-generated/exported-macros-assembler.cc", 1467 "$target_gen_dir/torque-generated/exported-macros-assembler.h", 1468 "src/torque/runtime-support.h", 1469 ] 1470 foreach(file, torque_files) { 1471 filetq = string_replace(file, ".tq", "-tq") 1472 sources += [ 1473 "$target_gen_dir/torque-generated/$filetq-csa.cc", 1474 "$target_gen_dir/torque-generated/$filetq-csa.h", 1475 ] 1476 } 1477 1478 configs = [ ":internal_config" ] 1479} 1480 1481v8_source_set("torque_generated_definitions") { 1482 visibility = [ ":*" ] # Only targets in this file can depend on this. 1483 1484 deps = [ 1485 ":generate_bytecode_builtins_list", 1486 ":run_torque", 1487 ":v8_tracing", 1488 ] 1489 1490 public_deps = [ ":v8_maybe_icu" ] 1491 1492 sources = [ 1493 "$target_gen_dir/torque-generated/class-forward-declarations.h", 1494 "$target_gen_dir/torque-generated/class-verifiers.cc", 1495 "$target_gen_dir/torque-generated/class-verifiers.h", 1496 "$target_gen_dir/torque-generated/factory.cc", 1497 "$target_gen_dir/torque-generated/objects-printer.cc", 1498 "$target_gen_dir/torque-generated/runtime-macros.cc", 1499 ] 1500 foreach(file, torque_files) { 1501 filetq = string_replace(file, ".tq", "-tq") 1502 sources += [ 1503 "$target_gen_dir/torque-generated/$filetq-inl.inc", 1504 "$target_gen_dir/torque-generated/$filetq.cc", 1505 "$target_gen_dir/torque-generated/$filetq.inc", 1506 ] 1507 } 1508 1509 configs = [ ":internal_config" ] 1510} 1511 1512action("generate_bytecode_builtins_list") { 1513 script = "tools/run.py" 1514 outputs = [ "$target_gen_dir/builtins-generated/bytecodes-builtins-list.h" ] 1515 deps = [ ":bytecode_builtins_list_generator($v8_generator_toolchain)" ] 1516 args = [ 1517 "./" + rebase_path( 1518 get_label_info( 1519 ":bytecode_builtins_list_generator($v8_generator_toolchain)", 1520 "root_out_dir") + "/bytecode_builtins_list_generator", 1521 root_build_dir), 1522 rebase_path("$target_gen_dir/builtins-generated/bytecodes-builtins-list.h", 1523 root_build_dir), 1524 ] 1525} 1526 1527# Template to generate different V8 snapshots based on different runtime flags. 1528# Can be invoked with run_mksnapshot(<name>). The target will resolve to 1529# run_mksnapshot_<name>. If <name> is "default", no file suffixes will be used. 1530# Otherwise files are suffixed, e.g. embedded_<name>.S and 1531# snapshot_blob_<name>.bin. 1532# 1533# The template exposes the variables: 1534# args: additional flags for mksnapshots 1535# embedded_suffix: a camel case suffix for method names in the embedded 1536# snapshot. 1537template("run_mksnapshot") { 1538 name = target_name 1539 if (name == "default") { 1540 suffix = "" 1541 } else { 1542 suffix = "_$name" 1543 } 1544 action("run_mksnapshot_" + name) { 1545 # Only targets in this file and running mkgrokdump can depend on this. 1546 visibility = [ 1547 ":*", 1548 "tools/debug_helper:run_mkgrokdump", 1549 ] 1550 1551 deps = [ ":mksnapshot($v8_snapshot_toolchain)" ] 1552 1553 script = "tools/run.py" 1554 1555 sources = [] 1556 1557 outputs = [] 1558 1559 data = [] 1560 1561 args = [ 1562 "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)", 1563 "root_out_dir") + "/mksnapshot", 1564 root_build_dir), 1565 "--turbo_instruction_scheduling", 1566 1567 # In cross builds, the snapshot may be generated for both the host and 1568 # target toolchains. The same host binary is used to generate both, so 1569 # mksnapshot needs to know which target OS to use at runtime. It's weird, 1570 # but the target OS is really |current_os|. 1571 "--target_os=$current_os", 1572 "--target_arch=$current_cpu", 1573 1574 "--embedded_src", 1575 rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir), 1576 ] 1577 1578 if (v8_enable_builtins_profiling) { 1579 args += [ "--turbo-profiling" ] 1580 } 1581 if (v8_enable_builtins_profiling_verbose) { 1582 args += [ "--turbo-profiling-verbose" ] 1583 } 1584 if (v8_builtins_profiling_log_file != "") { 1585 sources += [ v8_builtins_profiling_log_file ] 1586 args += [ 1587 "--turbo-profiling-log-file", 1588 rebase_path(v8_builtins_profiling_log_file, root_build_dir), 1589 ] 1590 } 1591 1592 # This is needed to distinguish between generating code for the simulator 1593 # and cross-compiling. The latter may need to run code on the host with the 1594 # simulator but cannot use simulator-specific instructions. 1595 if (target_is_simulator) { 1596 args += [ "--target_is_simulator" ] 1597 } 1598 1599 args += invoker.args 1600 1601 outputs += [ "$target_gen_dir/embedded${suffix}.S" ] 1602 if (invoker.embedded_variant != "") { 1603 args += [ 1604 "--embedded_variant", 1605 invoker.embedded_variant, 1606 ] 1607 } 1608 1609 if (v8_random_seed != "0") { 1610 args += [ 1611 "--random-seed", 1612 v8_random_seed, 1613 ] 1614 } 1615 1616 if (v8_os_page_size != "0") { 1617 args += [ 1618 "--v8_os_page_size", 1619 v8_os_page_size, 1620 ] 1621 } 1622 1623 if (v8_use_external_startup_data) { 1624 outputs += [ "$root_out_dir/snapshot_blob${suffix}.bin" ] 1625 data += [ "$root_out_dir/snapshot_blob${suffix}.bin" ] 1626 args += [ 1627 "--startup_blob", 1628 rebase_path("$root_out_dir/snapshot_blob${suffix}.bin", root_build_dir), 1629 ] 1630 } else { 1631 outputs += [ "$target_gen_dir/snapshot${suffix}.cc" ] 1632 args += [ 1633 "--startup_src", 1634 rebase_path("$target_gen_dir/snapshot${suffix}.cc", root_build_dir), 1635 ] 1636 } 1637 1638 if (v8_embed_script != "") { 1639 sources += [ v8_embed_script ] 1640 args += [ rebase_path(v8_embed_script, root_build_dir) ] 1641 } 1642 1643 if (v8_enable_snapshot_code_comments) { 1644 args += [ "--code-comments" ] 1645 } 1646 1647 if (v8_enable_snapshot_native_code_counters) { 1648 args += [ "--native-code-counters" ] 1649 } else { 1650 # --native-code-counters is the default in debug mode so make sure we can 1651 # unset it. 1652 args += [ "--no-native-code-counters" ] 1653 } 1654 1655 if (v8_enable_fast_mksnapshot) { 1656 args += [ 1657 "--no-turbo-rewrite-far-jumps", 1658 "--no-turbo-verify-allocation", 1659 ] 1660 1661 if (v8_enable_debugging_features && v8_enable_slow_dchecks) { 1662 # mksnapshot only accepts this flag if ENABLE_SLOW_DCHECKS is defined. 1663 args += [ "--no-enable-slow-asserts" ] 1664 } 1665 } 1666 1667 if (v8_enable_verify_heap) { 1668 args += [ "--verify-heap" ] 1669 } 1670 } 1671} 1672 1673run_mksnapshot("default") { 1674 args = [] 1675 embedded_variant = "Default" 1676} 1677if (emit_builtins_as_inline_asm) { 1678 asm_to_inline_asm("default") { 1679 args = [] 1680 } 1681} 1682if (v8_use_multi_snapshots) { 1683 run_mksnapshot("trusted") { 1684 args = [ "--no-untrusted-code-mitigations" ] 1685 embedded_variant = "Trusted" 1686 } 1687 if (emit_builtins_as_inline_asm) { 1688 asm_to_inline_asm("trusted") { 1689 args = [] 1690 } 1691 } 1692} 1693 1694action("v8_dump_build_config") { 1695 script = "tools/testrunner/utils/dump_build_config.py" 1696 outputs = [ "$root_out_dir/v8_build_config.json" ] 1697 is_gcov_coverage = v8_code_coverage && !is_clang 1698 is_full_debug = v8_enable_debugging_features && !v8_optimized_debug 1699 args = [ 1700 rebase_path("$root_out_dir/v8_build_config.json", root_build_dir), 1701 "current_cpu=\"$current_cpu\"", 1702 "dcheck_always_on=$dcheck_always_on", 1703 "is_android=$is_android", 1704 "is_asan=$is_asan", 1705 "is_cfi=$is_cfi", 1706 "is_clang=$is_clang", 1707 "is_component_build=$is_component_build", 1708 "is_debug=$v8_enable_debugging_features", 1709 "is_full_debug=$is_full_debug", 1710 "is_gcov_coverage=$is_gcov_coverage", 1711 "is_msan=$is_msan", 1712 "is_tsan=$is_tsan", 1713 "is_ubsan_vptr=$is_ubsan_vptr", 1714 "target_cpu=\"$target_cpu\"", 1715 "v8_current_cpu=\"$v8_current_cpu\"", 1716 "v8_enable_atomic_marking_state=$v8_enable_atomic_marking_state", 1717 "v8_enable_atomic_object_field_writes=" + 1718 "$v8_enable_atomic_object_field_writes", 1719 "v8_enable_concurrent_marking=$v8_enable_concurrent_marking", 1720 "v8_enable_i18n_support=$v8_enable_i18n_support", 1721 "v8_enable_verify_predictable=$v8_enable_verify_predictable", 1722 "v8_enable_verify_csa=$v8_enable_verify_csa", 1723 "v8_enable_lite_mode=$v8_enable_lite_mode", 1724 "v8_enable_pointer_compression=$v8_enable_pointer_compression", 1725 "v8_target_cpu=\"$v8_target_cpu\"", 1726 ] 1727 1728 if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" || 1729 v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { 1730 args += [ 1731 "mips_arch_variant=\"$mips_arch_variant\"", 1732 "mips_use_msa=$mips_use_msa", 1733 ] 1734 } 1735} 1736 1737############################################################################### 1738# Source Sets (aka static libraries) 1739# 1740 1741v8_source_set("v8_snapshot") { 1742 visibility = [ ":*" ] # Targets in this file can depend on this. 1743 1744 deps = [] 1745 public_deps = [ 1746 # This should be public so downstream targets can declare the snapshot 1747 # output file as their inputs. 1748 ":run_mksnapshot_default", 1749 ] 1750 1751 # Do not publicize any header to remove build dependency. 1752 public = [] 1753 1754 sources = [ "src/init/setup-isolate-deserialize.cc" ] 1755 if (v8_control_flow_integrity) { 1756 sources += [ "src/deoptimizer/deoptimizer-cfi-builtins.cc" ] 1757 } 1758 if (emit_builtins_as_inline_asm) { 1759 deps += [ ":asm_to_inline_asm_default" ] 1760 sources += [ "$target_gen_dir/embedded.cc" ] 1761 } else { 1762 sources += [ "$target_gen_dir/embedded.S" ] 1763 } 1764 1765 configs = [ ":internal_config" ] 1766 1767 if (v8_use_external_startup_data) { 1768 deps += [ ":v8_base" ] 1769 1770 sources += [ "src/snapshot/snapshot-external.cc" ] 1771 1772 if (v8_use_multi_snapshots) { 1773 public_deps += [ ":run_mksnapshot_trusted" ] 1774 if (emit_builtins_as_inline_asm) { 1775 deps += [ ":asm_to_inline_asm_trusted" ] 1776 sources += [ "$target_gen_dir/embedded_trusted.cc" ] 1777 } else { 1778 sources += [ "$target_gen_dir/embedded_trusted.S" ] 1779 } 1780 } 1781 } else { 1782 # Also top-level visibility targets can depend on this. 1783 visibility += [ "//:gn_visibility" ] 1784 1785 public_deps += [ ":v8_maybe_icu" ] 1786 1787 sources += [ "$target_gen_dir/snapshot.cc" ] 1788 } 1789} 1790 1791v8_source_set("v8_initializers") { 1792 visibility = [ 1793 ":*", 1794 "test/cctest:*", 1795 ] 1796 1797 deps = [ 1798 ":torque_generated_initializers", 1799 ":v8_tracing", 1800 ] 1801 1802 sources = [ 1803 ### gcmole(all) ### 1804 "src/builtins/builtins-array-gen.cc", 1805 "src/builtins/builtins-array-gen.h", 1806 "src/builtins/builtins-async-function-gen.cc", 1807 "src/builtins/builtins-async-gen.cc", 1808 "src/builtins/builtins-async-gen.h", 1809 "src/builtins/builtins-async-generator-gen.cc", 1810 "src/builtins/builtins-async-iterator-gen.cc", 1811 "src/builtins/builtins-bigint-gen.cc", 1812 "src/builtins/builtins-bigint-gen.h", 1813 "src/builtins/builtins-call-gen.cc", 1814 "src/builtins/builtins-call-gen.h", 1815 "src/builtins/builtins-collections-gen.cc", 1816 "src/builtins/builtins-constructor-gen.cc", 1817 "src/builtins/builtins-constructor-gen.h", 1818 "src/builtins/builtins-constructor.h", 1819 "src/builtins/builtins-conversion-gen.cc", 1820 "src/builtins/builtins-data-view-gen.h", 1821 "src/builtins/builtins-date-gen.cc", 1822 "src/builtins/builtins-debug-gen.cc", 1823 "src/builtins/builtins-generator-gen.cc", 1824 "src/builtins/builtins-global-gen.cc", 1825 "src/builtins/builtins-handler-gen.cc", 1826 "src/builtins/builtins-ic-gen.cc", 1827 "src/builtins/builtins-internal-gen.cc", 1828 "src/builtins/builtins-interpreter-gen.cc", 1829 "src/builtins/builtins-intl-gen.cc", 1830 "src/builtins/builtins-iterator-gen.cc", 1831 "src/builtins/builtins-iterator-gen.h", 1832 "src/builtins/builtins-lazy-gen.cc", 1833 "src/builtins/builtins-lazy-gen.h", 1834 "src/builtins/builtins-microtask-queue-gen.cc", 1835 "src/builtins/builtins-number-gen.cc", 1836 "src/builtins/builtins-object-gen.cc", 1837 "src/builtins/builtins-promise-gen.cc", 1838 "src/builtins/builtins-promise-gen.h", 1839 "src/builtins/builtins-proxy-gen.cc", 1840 "src/builtins/builtins-proxy-gen.h", 1841 "src/builtins/builtins-regexp-gen.cc", 1842 "src/builtins/builtins-regexp-gen.h", 1843 "src/builtins/builtins-sharedarraybuffer-gen.cc", 1844 "src/builtins/builtins-string-gen.cc", 1845 "src/builtins/builtins-string-gen.h", 1846 "src/builtins/builtins-typed-array-gen.cc", 1847 "src/builtins/builtins-typed-array-gen.h", 1848 "src/builtins/builtins-utils-gen.h", 1849 "src/builtins/builtins-wasm-gen.cc", 1850 "src/builtins/builtins-wasm-gen.h", 1851 "src/builtins/growable-fixed-array-gen.cc", 1852 "src/builtins/growable-fixed-array-gen.h", 1853 "src/builtins/profile-data-reader.cc", 1854 "src/builtins/profile-data-reader.h", 1855 "src/builtins/setup-builtins-internal.cc", 1856 "src/builtins/torque-csa-header-includes.h", 1857 "src/codegen/code-stub-assembler.cc", 1858 "src/codegen/code-stub-assembler.h", 1859 "src/heap/setup-heap-internal.cc", 1860 "src/ic/accessor-assembler.cc", 1861 "src/ic/accessor-assembler.h", 1862 "src/ic/binary-op-assembler.cc", 1863 "src/ic/binary-op-assembler.h", 1864 "src/ic/keyed-store-generic.cc", 1865 "src/ic/keyed-store-generic.h", 1866 "src/ic/unary-op-assembler.cc", 1867 "src/ic/unary-op-assembler.h", 1868 "src/interpreter/interpreter-assembler.cc", 1869 "src/interpreter/interpreter-assembler.h", 1870 "src/interpreter/interpreter-generator.cc", 1871 "src/interpreter/interpreter-generator.h", 1872 "src/interpreter/interpreter-intrinsics-generator.cc", 1873 "src/interpreter/interpreter-intrinsics-generator.h", 1874 ] 1875 1876 if (v8_current_cpu == "x86") { 1877 sources += [ 1878 ### gcmole(arch:ia32) ### 1879 "src/builtins/ia32/builtins-ia32.cc", 1880 ] 1881 } else if (v8_current_cpu == "x64") { 1882 sources += [ 1883 ### gcmole(arch:x64) ### 1884 "src/builtins/x64/builtins-x64.cc", 1885 ] 1886 } else if (v8_current_cpu == "arm") { 1887 sources += [ 1888 ### gcmole(arch:arm) ### 1889 "src/builtins/arm/builtins-arm.cc", 1890 ] 1891 } else if (v8_current_cpu == "arm64") { 1892 sources += [ 1893 ### gcmole(arch:arm64) ### 1894 "src/builtins/arm64/builtins-arm64.cc", 1895 ] 1896 } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { 1897 sources += [ 1898 ### gcmole(arch:mipsel) ### 1899 "src/builtins/mips/builtins-mips.cc", 1900 ] 1901 } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { 1902 sources += [ 1903 ### gcmole(arch:mips64el) ### 1904 "src/builtins/mips64/builtins-mips64.cc", 1905 ] 1906 } else if (v8_current_cpu == "ppc") { 1907 sources += [ 1908 ### gcmole(arch:ppc) ### 1909 "src/builtins/ppc/builtins-ppc.cc", 1910 ] 1911 } else if (v8_current_cpu == "ppc64") { 1912 sources += [ 1913 ### gcmole(arch:ppc64) ### 1914 "src/builtins/ppc/builtins-ppc.cc", 1915 ] 1916 } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { 1917 sources += [ 1918 ### gcmole(arch:s390) ### 1919 "src/builtins/s390/builtins-s390.cc", 1920 ] 1921 } 1922 1923 if (!v8_enable_i18n_support) { 1924 sources -= [ "src/builtins/builtins-intl-gen.cc" ] 1925 } 1926 1927 configs = [ ":internal_config" ] 1928} 1929 1930v8_source_set("v8_init") { 1931 visibility = [ ":*" ] # Only targets in this file can depend on this. 1932 1933 deps = [ 1934 ":v8_initializers", 1935 ":v8_tracing", 1936 ] 1937 1938 sources = [ 1939 ### gcmole(all) ### 1940 "src/init/setup-isolate-full.cc", 1941 ] 1942 1943 public_deps = [ ":v8_maybe_icu" ] 1944 1945 configs = [ ":internal_config" ] 1946} 1947 1948# This is split out to be a non-code containing target that the Chromium browser 1949# DLL can depend upon to get only a version string. 1950v8_header_set("v8_version") { 1951 configs = [ ":internal_config" ] 1952 1953 sources = [ 1954 "include/v8-value-serializer-version.h", 1955 "include/v8-version-string.h", 1956 "include/v8-version.h", 1957 ] 1958} 1959 1960# This is split out to be a non-code containing target that the Chromium browser 1961# can depend upon to get basic v8 types. 1962v8_header_set("v8_headers") { 1963 configs = [ ":internal_config" ] 1964 public_configs = [ ":v8_header_features" ] 1965 1966 sources = [ 1967 "include/v8-cppgc.h", 1968 "include/v8-fast-api-calls.h", 1969 "include/v8-internal.h", 1970 "include/v8.h", 1971 "include/v8config.h", 1972 ] 1973 1974 sources += [ 1975 # The following headers cannot be platform-specific. The include validation 1976 # of `gn gen $dir --check` requires all header files to be available on all 1977 # platforms. 1978 "include/v8-wasm-trap-handler-posix.h", 1979 "include/v8-wasm-trap-handler-win.h", 1980 ] 1981 1982 deps = [ ":v8_version" ] 1983} 1984 1985# This is split out to share basic headers with Torque. 1986v8_header_set("v8_shared_internal_headers") { 1987 visibility = [ ":*" ] # Only targets in this file can depend on this. 1988 configs = [ ":internal_config" ] 1989 1990 sources = [ "src/common/globals.h" ] 1991 1992 deps = [ ":v8_headers" ] 1993} 1994 1995v8_compiler_sources = [ 1996 ### gcmole(all) ### 1997 "src/builtins/profile-data-reader.h", 1998 "src/compiler/access-builder.cc", 1999 "src/compiler/access-builder.h", 2000 "src/compiler/access-info.cc", 2001 "src/compiler/access-info.h", 2002 "src/compiler/add-type-assertions-reducer.cc", 2003 "src/compiler/add-type-assertions-reducer.h", 2004 "src/compiler/all-nodes.cc", 2005 "src/compiler/all-nodes.h", 2006 "src/compiler/allocation-builder-inl.h", 2007 "src/compiler/allocation-builder.h", 2008 "src/compiler/backend/code-generator-impl.h", 2009 "src/compiler/backend/code-generator.cc", 2010 "src/compiler/backend/code-generator.h", 2011 "src/compiler/backend/frame-elider.cc", 2012 "src/compiler/backend/frame-elider.h", 2013 "src/compiler/backend/gap-resolver.cc", 2014 "src/compiler/backend/gap-resolver.h", 2015 "src/compiler/backend/instruction-codes.h", 2016 "src/compiler/backend/instruction-scheduler.cc", 2017 "src/compiler/backend/instruction-scheduler.h", 2018 "src/compiler/backend/instruction-selector-impl.h", 2019 "src/compiler/backend/instruction-selector.cc", 2020 "src/compiler/backend/instruction-selector.h", 2021 "src/compiler/backend/instruction.cc", 2022 "src/compiler/backend/instruction.h", 2023 "src/compiler/backend/jump-threading.cc", 2024 "src/compiler/backend/jump-threading.h", 2025 "src/compiler/backend/mid-tier-register-allocator.cc", 2026 "src/compiler/backend/mid-tier-register-allocator.h", 2027 "src/compiler/backend/move-optimizer.cc", 2028 "src/compiler/backend/move-optimizer.h", 2029 "src/compiler/backend/register-allocation.h", 2030 "src/compiler/backend/register-allocator-verifier.cc", 2031 "src/compiler/backend/register-allocator-verifier.h", 2032 "src/compiler/backend/register-allocator.cc", 2033 "src/compiler/backend/register-allocator.h", 2034 "src/compiler/backend/spill-placer.cc", 2035 "src/compiler/backend/spill-placer.h", 2036 "src/compiler/backend/unwinding-info-writer.h", 2037 "src/compiler/basic-block-instrumentor.cc", 2038 "src/compiler/basic-block-instrumentor.h", 2039 "src/compiler/branch-elimination.cc", 2040 "src/compiler/branch-elimination.h", 2041 "src/compiler/bytecode-analysis.cc", 2042 "src/compiler/bytecode-analysis.h", 2043 "src/compiler/bytecode-graph-builder.cc", 2044 "src/compiler/bytecode-graph-builder.h", 2045 "src/compiler/bytecode-liveness-map.cc", 2046 "src/compiler/bytecode-liveness-map.h", 2047 "src/compiler/c-linkage.cc", 2048 "src/compiler/checkpoint-elimination.cc", 2049 "src/compiler/checkpoint-elimination.h", 2050 "src/compiler/code-assembler.cc", 2051 "src/compiler/code-assembler.h", 2052 "src/compiler/common-node-cache.cc", 2053 "src/compiler/common-node-cache.h", 2054 "src/compiler/common-operator-reducer.cc", 2055 "src/compiler/common-operator-reducer.h", 2056 "src/compiler/common-operator.cc", 2057 "src/compiler/common-operator.h", 2058 "src/compiler/compilation-dependencies.cc", 2059 "src/compiler/compilation-dependencies.h", 2060 "src/compiler/compiler-source-position-table.cc", 2061 "src/compiler/compiler-source-position-table.h", 2062 "src/compiler/constant-folding-reducer.cc", 2063 "src/compiler/constant-folding-reducer.h", 2064 "src/compiler/control-equivalence.cc", 2065 "src/compiler/control-equivalence.h", 2066 "src/compiler/control-flow-optimizer.cc", 2067 "src/compiler/control-flow-optimizer.h", 2068 "src/compiler/csa-load-elimination.cc", 2069 "src/compiler/csa-load-elimination.h", 2070 "src/compiler/dead-code-elimination.cc", 2071 "src/compiler/dead-code-elimination.h", 2072 "src/compiler/decompression-optimizer.cc", 2073 "src/compiler/decompression-optimizer.h", 2074 "src/compiler/diamond.h", 2075 "src/compiler/effect-control-linearizer.cc", 2076 "src/compiler/effect-control-linearizer.h", 2077 "src/compiler/escape-analysis-reducer.cc", 2078 "src/compiler/escape-analysis-reducer.h", 2079 "src/compiler/escape-analysis.cc", 2080 "src/compiler/escape-analysis.h", 2081 "src/compiler/feedback-source.cc", 2082 "src/compiler/feedback-source.h", 2083 "src/compiler/frame-states.cc", 2084 "src/compiler/frame-states.h", 2085 "src/compiler/frame.cc", 2086 "src/compiler/frame.h", 2087 "src/compiler/functional-list.h", 2088 "src/compiler/globals.h", 2089 "src/compiler/graph-assembler.cc", 2090 "src/compiler/graph-assembler.h", 2091 "src/compiler/graph-reducer.cc", 2092 "src/compiler/graph-reducer.h", 2093 "src/compiler/graph-trimmer.cc", 2094 "src/compiler/graph-trimmer.h", 2095 "src/compiler/graph-visualizer.cc", 2096 "src/compiler/graph-visualizer.h", 2097 "src/compiler/graph-zone-traits.h", 2098 "src/compiler/graph.cc", 2099 "src/compiler/graph.h", 2100 "src/compiler/int64-lowering.cc", 2101 "src/compiler/int64-lowering.h", 2102 "src/compiler/js-call-reducer.cc", 2103 "src/compiler/js-call-reducer.h", 2104 "src/compiler/js-context-specialization.cc", 2105 "src/compiler/js-context-specialization.h", 2106 "src/compiler/js-create-lowering.cc", 2107 "src/compiler/js-create-lowering.h", 2108 "src/compiler/js-generic-lowering.cc", 2109 "src/compiler/js-generic-lowering.h", 2110 "src/compiler/js-graph.cc", 2111 "src/compiler/js-graph.h", 2112 "src/compiler/js-heap-broker.cc", 2113 "src/compiler/js-heap-broker.h", 2114 "src/compiler/js-heap-copy-reducer.cc", 2115 "src/compiler/js-heap-copy-reducer.h", 2116 "src/compiler/js-inlining-heuristic.cc", 2117 "src/compiler/js-inlining-heuristic.h", 2118 "src/compiler/js-inlining.cc", 2119 "src/compiler/js-inlining.h", 2120 "src/compiler/js-intrinsic-lowering.cc", 2121 "src/compiler/js-intrinsic-lowering.h", 2122 "src/compiler/js-native-context-specialization.cc", 2123 "src/compiler/js-native-context-specialization.h", 2124 "src/compiler/js-operator.cc", 2125 "src/compiler/js-operator.h", 2126 "src/compiler/js-type-hint-lowering.cc", 2127 "src/compiler/js-type-hint-lowering.h", 2128 "src/compiler/js-typed-lowering.cc", 2129 "src/compiler/js-typed-lowering.h", 2130 "src/compiler/linkage.cc", 2131 "src/compiler/linkage.h", 2132 "src/compiler/load-elimination.cc", 2133 "src/compiler/load-elimination.h", 2134 "src/compiler/loop-analysis.cc", 2135 "src/compiler/loop-analysis.h", 2136 "src/compiler/loop-peeling.cc", 2137 "src/compiler/loop-peeling.h", 2138 "src/compiler/loop-variable-optimizer.cc", 2139 "src/compiler/loop-variable-optimizer.h", 2140 "src/compiler/machine-graph-verifier.cc", 2141 "src/compiler/machine-graph-verifier.h", 2142 "src/compiler/machine-graph.cc", 2143 "src/compiler/machine-graph.h", 2144 "src/compiler/machine-operator-reducer.cc", 2145 "src/compiler/machine-operator-reducer.h", 2146 "src/compiler/machine-operator.cc", 2147 "src/compiler/machine-operator.h", 2148 "src/compiler/map-inference.cc", 2149 "src/compiler/map-inference.h", 2150 "src/compiler/memory-lowering.cc", 2151 "src/compiler/memory-lowering.h", 2152 "src/compiler/memory-optimizer.cc", 2153 "src/compiler/memory-optimizer.h", 2154 "src/compiler/node-aux-data.h", 2155 "src/compiler/node-cache.h", 2156 "src/compiler/node-marker.cc", 2157 "src/compiler/node-marker.h", 2158 "src/compiler/node-matchers.cc", 2159 "src/compiler/node-matchers.h", 2160 "src/compiler/node-origin-table.cc", 2161 "src/compiler/node-origin-table.h", 2162 "src/compiler/node-properties.cc", 2163 "src/compiler/node-properties.h", 2164 "src/compiler/node.cc", 2165 "src/compiler/node.h", 2166 "src/compiler/opcodes.cc", 2167 "src/compiler/opcodes.h", 2168 "src/compiler/operation-typer.cc", 2169 "src/compiler/operation-typer.h", 2170 "src/compiler/operator-properties.cc", 2171 "src/compiler/operator-properties.h", 2172 "src/compiler/operator.cc", 2173 "src/compiler/operator.h", 2174 "src/compiler/osr.cc", 2175 "src/compiler/osr.h", 2176 "src/compiler/per-isolate-compiler-cache.h", 2177 "src/compiler/persistent-map.h", 2178 "src/compiler/pipeline-statistics.cc", 2179 "src/compiler/pipeline-statistics.h", 2180 "src/compiler/pipeline.cc", 2181 "src/compiler/pipeline.h", 2182 "src/compiler/property-access-builder.cc", 2183 "src/compiler/property-access-builder.h", 2184 "src/compiler/raw-machine-assembler.cc", 2185 "src/compiler/raw-machine-assembler.h", 2186 "src/compiler/redundancy-elimination.cc", 2187 "src/compiler/redundancy-elimination.h", 2188 "src/compiler/refs-map.cc", 2189 "src/compiler/refs-map.h", 2190 "src/compiler/representation-change.cc", 2191 "src/compiler/representation-change.h", 2192 "src/compiler/schedule.cc", 2193 "src/compiler/schedule.h", 2194 "src/compiler/scheduled-machine-lowering.cc", 2195 "src/compiler/scheduled-machine-lowering.h", 2196 "src/compiler/scheduler.cc", 2197 "src/compiler/scheduler.h", 2198 "src/compiler/select-lowering.cc", 2199 "src/compiler/select-lowering.h", 2200 "src/compiler/serializer-for-background-compilation.cc", 2201 "src/compiler/serializer-for-background-compilation.h", 2202 "src/compiler/serializer-hints.h", 2203 "src/compiler/simd-scalar-lowering.cc", 2204 "src/compiler/simd-scalar-lowering.h", 2205 "src/compiler/simplified-lowering.cc", 2206 "src/compiler/simplified-lowering.h", 2207 "src/compiler/simplified-operator-reducer.cc", 2208 "src/compiler/simplified-operator-reducer.h", 2209 "src/compiler/simplified-operator.cc", 2210 "src/compiler/simplified-operator.h", 2211 "src/compiler/state-values-utils.cc", 2212 "src/compiler/state-values-utils.h", 2213 "src/compiler/store-store-elimination.cc", 2214 "src/compiler/store-store-elimination.h", 2215 "src/compiler/type-cache.cc", 2216 "src/compiler/type-cache.h", 2217 "src/compiler/type-narrowing-reducer.cc", 2218 "src/compiler/type-narrowing-reducer.h", 2219 "src/compiler/typed-optimization.cc", 2220 "src/compiler/typed-optimization.h", 2221 "src/compiler/typer.cc", 2222 "src/compiler/typer.h", 2223 "src/compiler/types.cc", 2224 "src/compiler/types.h", 2225 "src/compiler/value-numbering-reducer.cc", 2226 "src/compiler/value-numbering-reducer.h", 2227 "src/compiler/verifier.cc", 2228 "src/compiler/verifier.h", 2229 "src/compiler/wasm-compiler.cc", 2230 "src/compiler/wasm-compiler.h", 2231 "src/compiler/write-barrier-kind.h", 2232 "src/compiler/zone-stats.cc", 2233 "src/compiler/zone-stats.h", 2234] 2235 2236# The src/compiler files with optimizations. 2237v8_source_set("v8_compiler_opt") { 2238 visibility = [ ":*" ] # Only targets in this file can depend on this. 2239 2240 sources = v8_compiler_sources 2241 2242 public_deps = [ 2243 ":generate_bytecode_builtins_list", 2244 ":run_torque", 2245 ":v8_maybe_icu", 2246 ":v8_tracing", 2247 ] 2248 2249 if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) { 2250 # The :no_optimize config is added to v8_add_configs in v8.gni. 2251 remove_configs = [ "//build/config/compiler:no_optimize" ] 2252 configs = [ ":always_optimize" ] 2253 } else { 2254 # Without this else branch, gn fails to generate build files for non-debug 2255 # builds (because we try to remove a config that is not present). 2256 # So we include it, even if this config is not used outside of debug builds. 2257 configs = [ ":internal_config" ] 2258 } 2259} 2260 2261# The src/compiler files with default optimization behavior. 2262v8_source_set("v8_compiler") { 2263 visibility = [ ":*" ] # Only targets in this file can depend on this. 2264 2265 sources = v8_compiler_sources 2266 2267 public_deps = [ 2268 ":generate_bytecode_builtins_list", 2269 ":run_torque", 2270 ":v8_maybe_icu", 2271 ":v8_tracing", 2272 ] 2273 2274 configs = [ ":internal_config" ] 2275} 2276 2277group("v8_compiler_for_mksnapshot") { 2278 if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) { 2279 deps = [ ":v8_compiler_opt" ] 2280 } else { 2281 deps = [ ":v8_compiler" ] 2282 } 2283} 2284 2285# Any target using trace events must directly or indirectly depend on 2286# v8_tracing. 2287group("v8_tracing") { 2288 if (v8_use_perfetto) { 2289 if (build_with_chromium) { 2290 public_deps = [ "//third_party/perfetto:libperfetto" ] 2291 } else { 2292 public_deps = [ ":v8_libperfetto" ] 2293 } 2294 } 2295} 2296 2297v8_source_set("v8_base_without_compiler") { 2298 visibility = [ ":*" ] # Only targets in this file can depend on this. 2299 2300 # Split static libraries on windows into two. 2301 split_count = 2 2302 2303 sources = [ 2304 "//base/trace_event/common/trace_event_common.h", 2305 2306 ### gcmole(all) ### 2307 "$target_gen_dir/builtins-generated/bytecodes-builtins-list.h", 2308 "include/cppgc/common.h", 2309 "include/v8-cppgc.h", 2310 "include/v8-fast-api-calls.h", 2311 "include/v8-inspector-protocol.h", 2312 "include/v8-inspector.h", 2313 "include/v8-internal.h", 2314 "include/v8-metrics.h", 2315 "include/v8-platform.h", 2316 "include/v8-profiler.h", 2317 "include/v8-unwinder-state.h", 2318 "include/v8-util.h", 2319 "include/v8-wasm-trap-handler-posix.h", 2320 "include/v8.h", 2321 "include/v8config.h", 2322 "src/api/api-arguments-inl.h", 2323 "src/api/api-arguments.cc", 2324 "src/api/api-arguments.h", 2325 "src/api/api-natives.cc", 2326 "src/api/api-natives.h", 2327 "src/api/api.cc", 2328 "src/api/api.h", 2329 "src/asmjs/asm-js.cc", 2330 "src/asmjs/asm-js.h", 2331 "src/asmjs/asm-names.h", 2332 "src/asmjs/asm-parser.cc", 2333 "src/asmjs/asm-parser.h", 2334 "src/asmjs/asm-scanner.cc", 2335 "src/asmjs/asm-scanner.h", 2336 "src/asmjs/asm-types.cc", 2337 "src/asmjs/asm-types.h", 2338 "src/ast/ast-function-literal-id-reindexer.cc", 2339 "src/ast/ast-function-literal-id-reindexer.h", 2340 "src/ast/ast-source-ranges.h", 2341 "src/ast/ast-traversal-visitor.h", 2342 "src/ast/ast-value-factory.cc", 2343 "src/ast/ast-value-factory.h", 2344 "src/ast/ast.cc", 2345 "src/ast/ast.h", 2346 "src/ast/modules.cc", 2347 "src/ast/modules.h", 2348 "src/ast/prettyprinter.cc", 2349 "src/ast/prettyprinter.h", 2350 "src/ast/scopes.cc", 2351 "src/ast/scopes.h", 2352 "src/ast/source-range-ast-visitor.cc", 2353 "src/ast/source-range-ast-visitor.h", 2354 "src/ast/variables.cc", 2355 "src/ast/variables.h", 2356 "src/builtins/accessors.cc", 2357 "src/builtins/accessors.h", 2358 "src/builtins/builtins-api.cc", 2359 "src/builtins/builtins-array.cc", 2360 "src/builtins/builtins-arraybuffer.cc", 2361 "src/builtins/builtins-async-module.cc", 2362 "src/builtins/builtins-bigint.cc", 2363 "src/builtins/builtins-callsite.cc", 2364 "src/builtins/builtins-collections.cc", 2365 "src/builtins/builtins-console.cc", 2366 "src/builtins/builtins-constructor.h", 2367 "src/builtins/builtins-dataview.cc", 2368 "src/builtins/builtins-date.cc", 2369 "src/builtins/builtins-definitions.h", 2370 "src/builtins/builtins-descriptors.h", 2371 "src/builtins/builtins-error.cc", 2372 "src/builtins/builtins-function.cc", 2373 "src/builtins/builtins-global.cc", 2374 "src/builtins/builtins-internal.cc", 2375 "src/builtins/builtins-intl.cc", 2376 "src/builtins/builtins-json.cc", 2377 "src/builtins/builtins-number.cc", 2378 "src/builtins/builtins-object.cc", 2379 "src/builtins/builtins-promise.h", 2380 "src/builtins/builtins-reflect.cc", 2381 "src/builtins/builtins-regexp.cc", 2382 "src/builtins/builtins-sharedarraybuffer.cc", 2383 "src/builtins/builtins-string.cc", 2384 "src/builtins/builtins-symbol.cc", 2385 "src/builtins/builtins-trace.cc", 2386 "src/builtins/builtins-typed-array.cc", 2387 "src/builtins/builtins-utils-inl.h", 2388 "src/builtins/builtins-utils.h", 2389 "src/builtins/builtins-weak-refs.cc", 2390 "src/builtins/builtins.cc", 2391 "src/builtins/builtins.h", 2392 "src/builtins/constants-table-builder.cc", 2393 "src/builtins/constants-table-builder.h", 2394 "src/builtins/profile-data-reader.h", 2395 "src/codegen/assembler-arch.h", 2396 "src/codegen/assembler-inl.h", 2397 "src/codegen/assembler.cc", 2398 "src/codegen/assembler.h", 2399 "src/codegen/bailout-reason.cc", 2400 "src/codegen/bailout-reason.h", 2401 "src/codegen/callable.h", 2402 "src/codegen/code-comments.cc", 2403 "src/codegen/code-comments.h", 2404 "src/codegen/code-desc.cc", 2405 "src/codegen/code-desc.h", 2406 "src/codegen/code-factory.cc", 2407 "src/codegen/code-factory.h", 2408 "src/codegen/code-reference.cc", 2409 "src/codegen/code-reference.h", 2410 "src/codegen/compilation-cache.cc", 2411 "src/codegen/compilation-cache.h", 2412 "src/codegen/compiler.cc", 2413 "src/codegen/compiler.h", 2414 "src/codegen/constant-pool.cc", 2415 "src/codegen/constant-pool.h", 2416 "src/codegen/constants-arch.h", 2417 "src/codegen/cpu-features.h", 2418 "src/codegen/external-reference-encoder.cc", 2419 "src/codegen/external-reference-encoder.h", 2420 "src/codegen/external-reference-table.cc", 2421 "src/codegen/external-reference-table.h", 2422 "src/codegen/external-reference.cc", 2423 "src/codegen/external-reference.h", 2424 "src/codegen/flush-instruction-cache.cc", 2425 "src/codegen/flush-instruction-cache.h", 2426 "src/codegen/handler-table.cc", 2427 "src/codegen/handler-table.h", 2428 "src/codegen/interface-descriptors.cc", 2429 "src/codegen/interface-descriptors.h", 2430 "src/codegen/label.h", 2431 "src/codegen/machine-type.cc", 2432 "src/codegen/machine-type.h", 2433 "src/codegen/macro-assembler-inl.h", 2434 "src/codegen/macro-assembler.h", 2435 "src/codegen/optimized-compilation-info.cc", 2436 "src/codegen/optimized-compilation-info.h", 2437 "src/codegen/pending-optimization-table.cc", 2438 "src/codegen/pending-optimization-table.h", 2439 "src/codegen/register-arch.h", 2440 "src/codegen/register-configuration.cc", 2441 "src/codegen/register-configuration.h", 2442 "src/codegen/register.cc", 2443 "src/codegen/register.h", 2444 "src/codegen/reglist.h", 2445 "src/codegen/reloc-info.cc", 2446 "src/codegen/reloc-info.h", 2447 "src/codegen/safepoint-table.cc", 2448 "src/codegen/safepoint-table.h", 2449 "src/codegen/signature.h", 2450 "src/codegen/source-position-table.cc", 2451 "src/codegen/source-position-table.h", 2452 "src/codegen/source-position.cc", 2453 "src/codegen/source-position.h", 2454 "src/codegen/string-constants.cc", 2455 "src/codegen/string-constants.h", 2456 "src/codegen/tick-counter.cc", 2457 "src/codegen/tick-counter.h", 2458 "src/codegen/tnode.cc", 2459 "src/codegen/tnode.h", 2460 "src/codegen/turbo-assembler.cc", 2461 "src/codegen/turbo-assembler.h", 2462 "src/codegen/unoptimized-compilation-info.cc", 2463 "src/codegen/unoptimized-compilation-info.h", 2464 "src/common/assert-scope.cc", 2465 "src/common/assert-scope.h", 2466 "src/common/checks.h", 2467 "src/common/external-pointer-inl.h", 2468 "src/common/external-pointer.h", 2469 "src/common/message-template.h", 2470 "src/common/ptr-compr-inl.h", 2471 "src/common/ptr-compr.h", 2472 "src/compiler-dispatcher/compiler-dispatcher.cc", 2473 "src/compiler-dispatcher/compiler-dispatcher.h", 2474 "src/compiler-dispatcher/optimizing-compile-dispatcher.cc", 2475 "src/compiler-dispatcher/optimizing-compile-dispatcher.h", 2476 "src/date/date.cc", 2477 "src/date/date.h", 2478 "src/date/dateparser-inl.h", 2479 "src/date/dateparser.cc", 2480 "src/date/dateparser.h", 2481 "src/debug/debug-coverage.cc", 2482 "src/debug/debug-coverage.h", 2483 "src/debug/debug-evaluate.cc", 2484 "src/debug/debug-evaluate.h", 2485 "src/debug/debug-frames.cc", 2486 "src/debug/debug-frames.h", 2487 "src/debug/debug-interface.h", 2488 "src/debug/debug-property-iterator.cc", 2489 "src/debug/debug-property-iterator.h", 2490 "src/debug/debug-scope-iterator.cc", 2491 "src/debug/debug-scope-iterator.h", 2492 "src/debug/debug-scopes.cc", 2493 "src/debug/debug-scopes.h", 2494 "src/debug/debug-stack-trace-iterator.cc", 2495 "src/debug/debug-stack-trace-iterator.h", 2496 "src/debug/debug-type-profile.cc", 2497 "src/debug/debug-type-profile.h", 2498 "src/debug/debug.cc", 2499 "src/debug/debug.h", 2500 "src/debug/interface-types.h", 2501 "src/debug/liveedit.cc", 2502 "src/debug/liveedit.h", 2503 "src/deoptimizer/deoptimize-reason.cc", 2504 "src/deoptimizer/deoptimize-reason.h", 2505 "src/deoptimizer/deoptimizer.cc", 2506 "src/deoptimizer/deoptimizer.h", 2507 "src/diagnostics/basic-block-profiler.cc", 2508 "src/diagnostics/basic-block-profiler.h", 2509 "src/diagnostics/code-tracer.h", 2510 "src/diagnostics/compilation-statistics.cc", 2511 "src/diagnostics/compilation-statistics.h", 2512 "src/diagnostics/disasm.h", 2513 "src/diagnostics/disassembler.cc", 2514 "src/diagnostics/disassembler.h", 2515 "src/diagnostics/eh-frame.cc", 2516 "src/diagnostics/eh-frame.h", 2517 "src/diagnostics/gdb-jit.cc", 2518 "src/diagnostics/gdb-jit.h", 2519 "src/diagnostics/objects-debug.cc", 2520 "src/diagnostics/objects-printer.cc", 2521 "src/diagnostics/perf-jit.cc", 2522 "src/diagnostics/perf-jit.h", 2523 "src/diagnostics/unwinder.cc", 2524 "src/diagnostics/unwinder.h", 2525 "src/execution/arguments-inl.h", 2526 "src/execution/arguments.cc", 2527 "src/execution/arguments.h", 2528 "src/execution/execution.cc", 2529 "src/execution/execution.h", 2530 "src/execution/external-pointer-table.cc", 2531 "src/execution/external-pointer-table.h", 2532 "src/execution/frame-constants.h", 2533 "src/execution/frames-inl.h", 2534 "src/execution/frames.cc", 2535 "src/execution/frames.h", 2536 "src/execution/futex-emulation.cc", 2537 "src/execution/futex-emulation.h", 2538 "src/execution/interrupts-scope.cc", 2539 "src/execution/interrupts-scope.h", 2540 "src/execution/isolate-data.h", 2541 "src/execution/isolate-inl.h", 2542 "src/execution/isolate-utils.h", 2543 "src/execution/isolate.cc", 2544 "src/execution/isolate.h", 2545 "src/execution/local-isolate-inl.h", 2546 "src/execution/local-isolate.cc", 2547 "src/execution/local-isolate.h", 2548 "src/execution/messages.cc", 2549 "src/execution/messages.h", 2550 "src/execution/microtask-queue.cc", 2551 "src/execution/microtask-queue.h", 2552 "src/execution/pointer-authentication.h", 2553 "src/execution/protectors-inl.h", 2554 "src/execution/protectors.cc", 2555 "src/execution/protectors.h", 2556 "src/execution/runtime-profiler.cc", 2557 "src/execution/runtime-profiler.h", 2558 "src/execution/simulator-base.cc", 2559 "src/execution/simulator-base.h", 2560 "src/execution/simulator.h", 2561 "src/execution/stack-guard.cc", 2562 "src/execution/stack-guard.h", 2563 "src/execution/thread-id.cc", 2564 "src/execution/thread-id.h", 2565 "src/execution/thread-local-top.cc", 2566 "src/execution/thread-local-top.h", 2567 "src/execution/v8threads.cc", 2568 "src/execution/v8threads.h", 2569 "src/execution/vm-state-inl.h", 2570 "src/execution/vm-state.h", 2571 "src/extensions/cputracemark-extension.cc", 2572 "src/extensions/cputracemark-extension.h", 2573 "src/extensions/externalize-string-extension.cc", 2574 "src/extensions/externalize-string-extension.h", 2575 "src/extensions/gc-extension.cc", 2576 "src/extensions/gc-extension.h", 2577 "src/extensions/ignition-statistics-extension.cc", 2578 "src/extensions/ignition-statistics-extension.h", 2579 "src/extensions/statistics-extension.cc", 2580 "src/extensions/statistics-extension.h", 2581 "src/extensions/trigger-failure-extension.cc", 2582 "src/extensions/trigger-failure-extension.h", 2583 "src/flags/flag-definitions.h", 2584 "src/flags/flags.cc", 2585 "src/flags/flags.h", 2586 "src/handles/global-handles.cc", 2587 "src/handles/global-handles.h", 2588 "src/handles/handles-inl.h", 2589 "src/handles/handles.cc", 2590 "src/handles/handles.h", 2591 "src/handles/local-handles-inl.h", 2592 "src/handles/local-handles.cc", 2593 "src/handles/local-handles.h", 2594 "src/handles/maybe-handles-inl.h", 2595 "src/handles/maybe-handles.h", 2596 "src/handles/persistent-handles.cc", 2597 "src/handles/persistent-handles.h", 2598 "src/heap/allocation-observer.cc", 2599 "src/heap/allocation-observer.h", 2600 "src/heap/allocation-stats.h", 2601 "src/heap/array-buffer-sweeper.cc", 2602 "src/heap/array-buffer-sweeper.h", 2603 "src/heap/barrier.h", 2604 "src/heap/base-space.cc", 2605 "src/heap/base-space.h", 2606 "src/heap/basic-memory-chunk.cc", 2607 "src/heap/basic-memory-chunk.h", 2608 "src/heap/code-object-registry.cc", 2609 "src/heap/code-object-registry.h", 2610 "src/heap/code-stats.cc", 2611 "src/heap/code-stats.h", 2612 "src/heap/collection-barrier.cc", 2613 "src/heap/collection-barrier.h", 2614 "src/heap/combined-heap.cc", 2615 "src/heap/combined-heap.h", 2616 "src/heap/concurrent-allocator-inl.h", 2617 "src/heap/concurrent-allocator.cc", 2618 "src/heap/concurrent-allocator.h", 2619 "src/heap/concurrent-marking.cc", 2620 "src/heap/concurrent-marking.h", 2621 "src/heap/cppgc-js/cpp-heap.cc", 2622 "src/heap/cppgc-js/cpp-heap.h", 2623 "src/heap/cppgc-js/cpp-snapshot.cc", 2624 "src/heap/cppgc-js/cpp-snapshot.h", 2625 "src/heap/cppgc-js/unified-heap-marking-state.h", 2626 "src/heap/cppgc-js/unified-heap-marking-verifier.cc", 2627 "src/heap/cppgc-js/unified-heap-marking-verifier.h", 2628 "src/heap/cppgc-js/unified-heap-marking-visitor.cc", 2629 "src/heap/cppgc-js/unified-heap-marking-visitor.h", 2630 "src/heap/embedder-tracing.cc", 2631 "src/heap/embedder-tracing.h", 2632 "src/heap/factory-base.cc", 2633 "src/heap/factory-base.h", 2634 "src/heap/factory-inl.h", 2635 "src/heap/factory.cc", 2636 "src/heap/factory.h", 2637 "src/heap/finalization-registry-cleanup-task.cc", 2638 "src/heap/finalization-registry-cleanup-task.h", 2639 "src/heap/free-list-inl.h", 2640 "src/heap/free-list.cc", 2641 "src/heap/free-list.h", 2642 "src/heap/gc-idle-time-handler.cc", 2643 "src/heap/gc-idle-time-handler.h", 2644 "src/heap/gc-tracer.cc", 2645 "src/heap/gc-tracer.h", 2646 "src/heap/heap-controller.cc", 2647 "src/heap/heap-controller.h", 2648 "src/heap/heap-inl.h", 2649 "src/heap/heap-write-barrier-inl.h", 2650 "src/heap/heap-write-barrier.cc", 2651 "src/heap/heap-write-barrier.h", 2652 "src/heap/heap.cc", 2653 "src/heap/heap.h", 2654 "src/heap/incremental-marking-inl.h", 2655 "src/heap/incremental-marking-job.cc", 2656 "src/heap/incremental-marking-job.h", 2657 "src/heap/incremental-marking.cc", 2658 "src/heap/incremental-marking.h", 2659 "src/heap/index-generator.cc", 2660 "src/heap/index-generator.h", 2661 "src/heap/invalidated-slots-inl.h", 2662 "src/heap/invalidated-slots.cc", 2663 "src/heap/invalidated-slots.h", 2664 "src/heap/item-parallel-job.cc", 2665 "src/heap/item-parallel-job.h", 2666 "src/heap/large-spaces.cc", 2667 "src/heap/large-spaces.h", 2668 "src/heap/list.h", 2669 "src/heap/local-allocator-inl.h", 2670 "src/heap/local-allocator.h", 2671 "src/heap/local-factory.cc", 2672 "src/heap/local-factory.h", 2673 "src/heap/local-heap-inl.h", 2674 "src/heap/local-heap.cc", 2675 "src/heap/local-heap.h", 2676 "src/heap/mark-compact-inl.h", 2677 "src/heap/mark-compact.cc", 2678 "src/heap/mark-compact.h", 2679 "src/heap/marking-barrier.cc", 2680 "src/heap/marking-barrier.h", 2681 "src/heap/marking-visitor-inl.h", 2682 "src/heap/marking-visitor.h", 2683 "src/heap/marking-worklist-inl.h", 2684 "src/heap/marking-worklist.cc", 2685 "src/heap/marking-worklist.h", 2686 "src/heap/marking.cc", 2687 "src/heap/marking.h", 2688 "src/heap/memory-allocator.cc", 2689 "src/heap/memory-allocator.h", 2690 "src/heap/memory-chunk-inl.h", 2691 "src/heap/memory-chunk-layout.cc", 2692 "src/heap/memory-chunk-layout.h", 2693 "src/heap/memory-chunk.cc", 2694 "src/heap/memory-chunk.h", 2695 "src/heap/memory-measurement-inl.h", 2696 "src/heap/memory-measurement.cc", 2697 "src/heap/memory-measurement.h", 2698 "src/heap/memory-reducer.cc", 2699 "src/heap/memory-reducer.h", 2700 "src/heap/new-spaces-inl.h", 2701 "src/heap/new-spaces.cc", 2702 "src/heap/new-spaces.h", 2703 "src/heap/object-stats.cc", 2704 "src/heap/object-stats.h", 2705 "src/heap/objects-visiting-inl.h", 2706 "src/heap/objects-visiting.cc", 2707 "src/heap/objects-visiting.h", 2708 "src/heap/paged-spaces-inl.h", 2709 "src/heap/paged-spaces.cc", 2710 "src/heap/paged-spaces.h", 2711 "src/heap/parallel-work-item.h", 2712 "src/heap/read-only-heap-inl.h", 2713 "src/heap/read-only-heap.cc", 2714 "src/heap/read-only-heap.h", 2715 "src/heap/read-only-spaces.cc", 2716 "src/heap/read-only-spaces.h", 2717 "src/heap/remembered-set-inl.h", 2718 "src/heap/remembered-set.h", 2719 "src/heap/safepoint.cc", 2720 "src/heap/safepoint.h", 2721 "src/heap/scavenge-job.cc", 2722 "src/heap/scavenge-job.h", 2723 "src/heap/scavenger-inl.h", 2724 "src/heap/scavenger.cc", 2725 "src/heap/scavenger.h", 2726 "src/heap/slot-set.cc", 2727 "src/heap/slot-set.h", 2728 "src/heap/spaces-inl.h", 2729 "src/heap/spaces.cc", 2730 "src/heap/spaces.h", 2731 "src/heap/stress-marking-observer.cc", 2732 "src/heap/stress-marking-observer.h", 2733 "src/heap/stress-scavenge-observer.cc", 2734 "src/heap/stress-scavenge-observer.h", 2735 "src/heap/sweeper.cc", 2736 "src/heap/sweeper.h", 2737 "src/heap/weak-object-worklists.cc", 2738 "src/heap/weak-object-worklists.h", 2739 "src/heap/worklist.h", 2740 "src/ic/call-optimization.cc", 2741 "src/ic/call-optimization.h", 2742 "src/ic/handler-configuration-inl.h", 2743 "src/ic/handler-configuration.cc", 2744 "src/ic/handler-configuration.h", 2745 "src/ic/ic-inl.h", 2746 "src/ic/ic-stats.cc", 2747 "src/ic/ic-stats.h", 2748 "src/ic/ic.cc", 2749 "src/ic/ic.h", 2750 "src/ic/stub-cache.cc", 2751 "src/ic/stub-cache.h", 2752 "src/init/bootstrapper.cc", 2753 "src/init/bootstrapper.h", 2754 "src/init/heap-symbols.h", 2755 "src/init/icu_util.cc", 2756 "src/init/icu_util.h", 2757 "src/init/isolate-allocator.cc", 2758 "src/init/isolate-allocator.h", 2759 "src/init/setup-isolate.h", 2760 "src/init/startup-data-util.cc", 2761 "src/init/startup-data-util.h", 2762 "src/init/v8.cc", 2763 "src/init/v8.h", 2764 "src/interpreter/block-coverage-builder.h", 2765 "src/interpreter/bytecode-array-accessor.cc", 2766 "src/interpreter/bytecode-array-accessor.h", 2767 "src/interpreter/bytecode-array-builder.cc", 2768 "src/interpreter/bytecode-array-builder.h", 2769 "src/interpreter/bytecode-array-iterator.cc", 2770 "src/interpreter/bytecode-array-iterator.h", 2771 "src/interpreter/bytecode-array-random-iterator.cc", 2772 "src/interpreter/bytecode-array-random-iterator.h", 2773 "src/interpreter/bytecode-array-writer.cc", 2774 "src/interpreter/bytecode-array-writer.h", 2775 "src/interpreter/bytecode-decoder.cc", 2776 "src/interpreter/bytecode-decoder.h", 2777 "src/interpreter/bytecode-flags.cc", 2778 "src/interpreter/bytecode-flags.h", 2779 "src/interpreter/bytecode-generator.cc", 2780 "src/interpreter/bytecode-generator.h", 2781 "src/interpreter/bytecode-jump-table.h", 2782 "src/interpreter/bytecode-label.cc", 2783 "src/interpreter/bytecode-label.h", 2784 "src/interpreter/bytecode-node.cc", 2785 "src/interpreter/bytecode-node.h", 2786 "src/interpreter/bytecode-operands.cc", 2787 "src/interpreter/bytecode-operands.h", 2788 "src/interpreter/bytecode-register-allocator.h", 2789 "src/interpreter/bytecode-register-optimizer.cc", 2790 "src/interpreter/bytecode-register-optimizer.h", 2791 "src/interpreter/bytecode-register.cc", 2792 "src/interpreter/bytecode-register.h", 2793 "src/interpreter/bytecode-source-info.cc", 2794 "src/interpreter/bytecode-source-info.h", 2795 "src/interpreter/bytecode-traits.h", 2796 "src/interpreter/bytecodes.cc", 2797 "src/interpreter/bytecodes.h", 2798 "src/interpreter/constant-array-builder.cc", 2799 "src/interpreter/constant-array-builder.h", 2800 "src/interpreter/control-flow-builders.cc", 2801 "src/interpreter/control-flow-builders.h", 2802 "src/interpreter/handler-table-builder.cc", 2803 "src/interpreter/handler-table-builder.h", 2804 "src/interpreter/interpreter-generator.h", 2805 "src/interpreter/interpreter-intrinsics.cc", 2806 "src/interpreter/interpreter-intrinsics.h", 2807 "src/interpreter/interpreter.cc", 2808 "src/interpreter/interpreter.h", 2809 "src/json/json-parser.cc", 2810 "src/json/json-parser.h", 2811 "src/json/json-stringifier.cc", 2812 "src/json/json-stringifier.h", 2813 "src/logging/code-events.h", 2814 "src/logging/counters-definitions.h", 2815 "src/logging/counters-inl.h", 2816 "src/logging/counters.cc", 2817 "src/logging/counters.h", 2818 "src/logging/local-logger.cc", 2819 "src/logging/local-logger.h", 2820 "src/logging/log-inl.h", 2821 "src/logging/log-utils.cc", 2822 "src/logging/log-utils.h", 2823 "src/logging/log.cc", 2824 "src/logging/log.h", 2825 "src/logging/metrics.cc", 2826 "src/logging/metrics.h", 2827 "src/logging/tracing-flags.cc", 2828 "src/logging/tracing-flags.h", 2829 "src/numbers/bignum-dtoa.cc", 2830 "src/numbers/bignum-dtoa.h", 2831 "src/numbers/bignum.cc", 2832 "src/numbers/bignum.h", 2833 "src/numbers/cached-powers.cc", 2834 "src/numbers/cached-powers.h", 2835 "src/numbers/conversions-inl.h", 2836 "src/numbers/conversions.cc", 2837 "src/numbers/conversions.h", 2838 "src/numbers/diy-fp.cc", 2839 "src/numbers/diy-fp.h", 2840 "src/numbers/double.h", 2841 "src/numbers/dtoa.cc", 2842 "src/numbers/dtoa.h", 2843 "src/numbers/fast-dtoa.cc", 2844 "src/numbers/fast-dtoa.h", 2845 "src/numbers/fixed-dtoa.cc", 2846 "src/numbers/fixed-dtoa.h", 2847 "src/numbers/hash-seed-inl.h", 2848 "src/numbers/math-random.cc", 2849 "src/numbers/math-random.h", 2850 "src/numbers/strtod.cc", 2851 "src/numbers/strtod.h", 2852 "src/objects/all-objects-inl.h", 2853 "src/objects/allocation-site-inl.h", 2854 "src/objects/allocation-site-scopes-inl.h", 2855 "src/objects/allocation-site-scopes.h", 2856 "src/objects/allocation-site.h", 2857 "src/objects/api-callbacks-inl.h", 2858 "src/objects/api-callbacks.h", 2859 "src/objects/arguments-inl.h", 2860 "src/objects/arguments.h", 2861 "src/objects/backing-store.cc", 2862 "src/objects/backing-store.h", 2863 "src/objects/bigint-inl.h", 2864 "src/objects/bigint.cc", 2865 "src/objects/bigint.h", 2866 "src/objects/cell-inl.h", 2867 "src/objects/cell.h", 2868 "src/objects/code-inl.h", 2869 "src/objects/code-kind.cc", 2870 "src/objects/code-kind.h", 2871 "src/objects/code.cc", 2872 "src/objects/code.h", 2873 "src/objects/compilation-cache-table-inl.h", 2874 "src/objects/compilation-cache-table.cc", 2875 "src/objects/compilation-cache-table.h", 2876 "src/objects/compressed-slots-inl.h", 2877 "src/objects/compressed-slots.h", 2878 "src/objects/contexts-inl.h", 2879 "src/objects/contexts.cc", 2880 "src/objects/contexts.h", 2881 "src/objects/data-handler-inl.h", 2882 "src/objects/data-handler.h", 2883 "src/objects/debug-objects-inl.h", 2884 "src/objects/debug-objects.cc", 2885 "src/objects/debug-objects.h", 2886 "src/objects/descriptor-array-inl.h", 2887 "src/objects/descriptor-array.h", 2888 "src/objects/dictionary-inl.h", 2889 "src/objects/dictionary.h", 2890 "src/objects/elements-inl.h", 2891 "src/objects/elements-kind.cc", 2892 "src/objects/elements-kind.h", 2893 "src/objects/elements.cc", 2894 "src/objects/elements.h", 2895 "src/objects/embedder-data-array-inl.h", 2896 "src/objects/embedder-data-array.cc", 2897 "src/objects/embedder-data-array.h", 2898 "src/objects/embedder-data-slot-inl.h", 2899 "src/objects/embedder-data-slot.h", 2900 "src/objects/feedback-cell-inl.h", 2901 "src/objects/feedback-cell.h", 2902 "src/objects/feedback-vector-inl.h", 2903 "src/objects/feedback-vector.cc", 2904 "src/objects/feedback-vector.h", 2905 "src/objects/field-index-inl.h", 2906 "src/objects/field-index.h", 2907 "src/objects/field-type.cc", 2908 "src/objects/field-type.h", 2909 "src/objects/fixed-array-inl.h", 2910 "src/objects/fixed-array.h", 2911 "src/objects/foreign-inl.h", 2912 "src/objects/foreign.h", 2913 "src/objects/frame-array-inl.h", 2914 "src/objects/frame-array.h", 2915 "src/objects/free-space-inl.h", 2916 "src/objects/free-space.h", 2917 "src/objects/function-kind.h", 2918 "src/objects/hash-table-inl.h", 2919 "src/objects/hash-table.h", 2920 "src/objects/heap-number-inl.h", 2921 "src/objects/heap-number.h", 2922 "src/objects/heap-object-inl.h", 2923 "src/objects/heap-object.h", 2924 "src/objects/instance-type-inl.h", 2925 "src/objects/instance-type.h", 2926 "src/objects/internal-index.h", 2927 "src/objects/intl-objects.cc", 2928 "src/objects/intl-objects.h", 2929 "src/objects/js-array-buffer-inl.h", 2930 "src/objects/js-array-buffer.cc", 2931 "src/objects/js-array-buffer.h", 2932 "src/objects/js-array-inl.h", 2933 "src/objects/js-array.h", 2934 "src/objects/js-break-iterator-inl.h", 2935 "src/objects/js-break-iterator.cc", 2936 "src/objects/js-break-iterator.h", 2937 "src/objects/js-collator-inl.h", 2938 "src/objects/js-collator.cc", 2939 "src/objects/js-collator.h", 2940 "src/objects/js-collection-inl.h", 2941 "src/objects/js-collection-iterator.h", 2942 "src/objects/js-collection.h", 2943 "src/objects/js-date-time-format-inl.h", 2944 "src/objects/js-date-time-format.cc", 2945 "src/objects/js-date-time-format.h", 2946 "src/objects/js-display-names-inl.h", 2947 "src/objects/js-display-names.cc", 2948 "src/objects/js-display-names.h", 2949 "src/objects/js-function-inl.h", 2950 "src/objects/js-function.cc", 2951 "src/objects/js-function.h", 2952 "src/objects/js-generator-inl.h", 2953 "src/objects/js-generator.h", 2954 "src/objects/js-list-format-inl.h", 2955 "src/objects/js-list-format.cc", 2956 "src/objects/js-list-format.h", 2957 "src/objects/js-locale-inl.h", 2958 "src/objects/js-locale.cc", 2959 "src/objects/js-locale.h", 2960 "src/objects/js-number-format-inl.h", 2961 "src/objects/js-number-format.cc", 2962 "src/objects/js-number-format.h", 2963 "src/objects/js-objects-inl.h", 2964 "src/objects/js-objects.cc", 2965 "src/objects/js-objects.h", 2966 "src/objects/js-plural-rules-inl.h", 2967 "src/objects/js-plural-rules.cc", 2968 "src/objects/js-plural-rules.h", 2969 "src/objects/js-promise-inl.h", 2970 "src/objects/js-promise.h", 2971 "src/objects/js-proxy-inl.h", 2972 "src/objects/js-proxy.h", 2973 "src/objects/js-regexp-inl.h", 2974 "src/objects/js-regexp-string-iterator-inl.h", 2975 "src/objects/js-regexp-string-iterator.h", 2976 "src/objects/js-regexp.cc", 2977 "src/objects/js-regexp.h", 2978 "src/objects/js-relative-time-format-inl.h", 2979 "src/objects/js-relative-time-format.cc", 2980 "src/objects/js-relative-time-format.h", 2981 "src/objects/js-segment-iterator-inl.h", 2982 "src/objects/js-segment-iterator.cc", 2983 "src/objects/js-segment-iterator.h", 2984 "src/objects/js-segmenter-inl.h", 2985 "src/objects/js-segmenter.cc", 2986 "src/objects/js-segmenter.h", 2987 "src/objects/js-segments-inl.h", 2988 "src/objects/js-segments.cc", 2989 "src/objects/js-segments.h", 2990 "src/objects/js-weak-refs-inl.h", 2991 "src/objects/js-weak-refs.h", 2992 "src/objects/keys.cc", 2993 "src/objects/keys.h", 2994 "src/objects/layout-descriptor-inl.h", 2995 "src/objects/layout-descriptor.cc", 2996 "src/objects/layout-descriptor.h", 2997 "src/objects/literal-objects-inl.h", 2998 "src/objects/literal-objects.cc", 2999 "src/objects/literal-objects.h", 3000 "src/objects/lookup-cache-inl.h", 3001 "src/objects/lookup-cache.cc", 3002 "src/objects/lookup-cache.h", 3003 "src/objects/lookup-inl.h", 3004 "src/objects/lookup.cc", 3005 "src/objects/lookup.h", 3006 "src/objects/managed.cc", 3007 "src/objects/managed.h", 3008 "src/objects/map-inl.h", 3009 "src/objects/map-updater.cc", 3010 "src/objects/map-updater.h", 3011 "src/objects/map.cc", 3012 "src/objects/map.h", 3013 "src/objects/maybe-object-inl.h", 3014 "src/objects/maybe-object.h", 3015 "src/objects/microtask-inl.h", 3016 "src/objects/microtask.h", 3017 "src/objects/module-inl.h", 3018 "src/objects/module.cc", 3019 "src/objects/module.h", 3020 "src/objects/name-inl.h", 3021 "src/objects/name.h", 3022 "src/objects/object-list-macros.h", 3023 "src/objects/object-macros-undef.h", 3024 "src/objects/object-macros.h", 3025 "src/objects/objects-body-descriptors-inl.h", 3026 "src/objects/objects-body-descriptors.h", 3027 "src/objects/objects-inl.h", 3028 "src/objects/objects.cc", 3029 "src/objects/objects.h", 3030 "src/objects/oddball-inl.h", 3031 "src/objects/oddball.h", 3032 "src/objects/ordered-hash-table-inl.h", 3033 "src/objects/ordered-hash-table.cc", 3034 "src/objects/ordered-hash-table.h", 3035 "src/objects/osr-optimized-code-cache-inl.h", 3036 "src/objects/osr-optimized-code-cache.cc", 3037 "src/objects/osr-optimized-code-cache.h", 3038 "src/objects/primitive-heap-object-inl.h", 3039 "src/objects/primitive-heap-object.h", 3040 "src/objects/promise-inl.h", 3041 "src/objects/promise.h", 3042 "src/objects/property-array-inl.h", 3043 "src/objects/property-array.h", 3044 "src/objects/property-cell-inl.h", 3045 "src/objects/property-cell.h", 3046 "src/objects/property-descriptor-object-inl.h", 3047 "src/objects/property-descriptor-object.h", 3048 "src/objects/property-descriptor.cc", 3049 "src/objects/property-descriptor.h", 3050 "src/objects/property-details.h", 3051 "src/objects/property.cc", 3052 "src/objects/property.h", 3053 "src/objects/prototype-info-inl.h", 3054 "src/objects/prototype-info.h", 3055 "src/objects/prototype.h", 3056 "src/objects/regexp-match-info.h", 3057 "src/objects/scope-info.cc", 3058 "src/objects/scope-info.h", 3059 "src/objects/script-inl.h", 3060 "src/objects/script.h", 3061 "src/objects/shared-function-info-inl.h", 3062 "src/objects/shared-function-info.cc", 3063 "src/objects/shared-function-info.h", 3064 "src/objects/slots-atomic-inl.h", 3065 "src/objects/slots-inl.h", 3066 "src/objects/slots.h", 3067 "src/objects/source-text-module.cc", 3068 "src/objects/source-text-module.h", 3069 "src/objects/stack-frame-info-inl.h", 3070 "src/objects/stack-frame-info.cc", 3071 "src/objects/stack-frame-info.h", 3072 "src/objects/string-comparator.cc", 3073 "src/objects/string-comparator.h", 3074 "src/objects/string-inl.h", 3075 "src/objects/string-set-inl.h", 3076 "src/objects/string-set.h", 3077 "src/objects/string-table-inl.h", 3078 "src/objects/string-table.cc", 3079 "src/objects/string-table.h", 3080 "src/objects/string.cc", 3081 "src/objects/string.h", 3082 "src/objects/struct-inl.h", 3083 "src/objects/struct.h", 3084 "src/objects/synthetic-module-inl.h", 3085 "src/objects/synthetic-module.cc", 3086 "src/objects/synthetic-module.h", 3087 "src/objects/tagged-field-inl.h", 3088 "src/objects/tagged-field.h", 3089 "src/objects/tagged-impl-inl.h", 3090 "src/objects/tagged-impl.cc", 3091 "src/objects/tagged-impl.h", 3092 "src/objects/tagged-index.h", 3093 "src/objects/tagged-value-inl.h", 3094 "src/objects/tagged-value.h", 3095 "src/objects/template-objects-inl.h", 3096 "src/objects/template-objects.cc", 3097 "src/objects/template-objects.h", 3098 "src/objects/templates-inl.h", 3099 "src/objects/templates.h", 3100 "src/objects/torque-defined-classes-inl.h", 3101 "src/objects/torque-defined-classes.h", 3102 "src/objects/transitions-inl.h", 3103 "src/objects/transitions.cc", 3104 "src/objects/transitions.h", 3105 "src/objects/type-hints.cc", 3106 "src/objects/type-hints.h", 3107 "src/objects/value-serializer.cc", 3108 "src/objects/value-serializer.h", 3109 "src/objects/visitors.cc", 3110 "src/objects/visitors.h", 3111 "src/parsing/expression-scope.h", 3112 "src/parsing/func-name-inferrer.cc", 3113 "src/parsing/func-name-inferrer.h", 3114 "src/parsing/literal-buffer.cc", 3115 "src/parsing/literal-buffer.h", 3116 "src/parsing/parse-info.cc", 3117 "src/parsing/parse-info.h", 3118 "src/parsing/parser-base.h", 3119 "src/parsing/parser.cc", 3120 "src/parsing/parser.h", 3121 "src/parsing/parsing.cc", 3122 "src/parsing/parsing.h", 3123 "src/parsing/pending-compilation-error-handler.cc", 3124 "src/parsing/pending-compilation-error-handler.h", 3125 "src/parsing/preparse-data-impl.h", 3126 "src/parsing/preparse-data.cc", 3127 "src/parsing/preparse-data.h", 3128 "src/parsing/preparser-logger.h", 3129 "src/parsing/preparser.cc", 3130 "src/parsing/preparser.h", 3131 "src/parsing/rewriter.cc", 3132 "src/parsing/rewriter.h", 3133 "src/parsing/scanner-character-streams.cc", 3134 "src/parsing/scanner-character-streams.h", 3135 "src/parsing/scanner.cc", 3136 "src/parsing/scanner.h", 3137 "src/parsing/token.cc", 3138 "src/parsing/token.h", 3139 "src/profiler/allocation-tracker.cc", 3140 "src/profiler/allocation-tracker.h", 3141 "src/profiler/circular-queue-inl.h", 3142 "src/profiler/circular-queue.h", 3143 "src/profiler/cpu-profiler-inl.h", 3144 "src/profiler/cpu-profiler.cc", 3145 "src/profiler/cpu-profiler.h", 3146 "src/profiler/heap-profiler.cc", 3147 "src/profiler/heap-profiler.h", 3148 "src/profiler/heap-snapshot-generator-inl.h", 3149 "src/profiler/heap-snapshot-generator.cc", 3150 "src/profiler/heap-snapshot-generator.h", 3151 "src/profiler/profile-generator-inl.h", 3152 "src/profiler/profile-generator.cc", 3153 "src/profiler/profile-generator.h", 3154 "src/profiler/profiler-listener.cc", 3155 "src/profiler/profiler-listener.h", 3156 "src/profiler/profiler-stats.cc", 3157 "src/profiler/profiler-stats.h", 3158 "src/profiler/sampling-heap-profiler.cc", 3159 "src/profiler/sampling-heap-profiler.h", 3160 "src/profiler/strings-storage.cc", 3161 "src/profiler/strings-storage.h", 3162 "src/profiler/symbolizer.cc", 3163 "src/profiler/symbolizer.h", 3164 "src/profiler/tick-sample.cc", 3165 "src/profiler/tick-sample.h", 3166 "src/profiler/tracing-cpu-profiler.cc", 3167 "src/profiler/tracing-cpu-profiler.h", 3168 "src/regexp/experimental/experimental-bytecode.cc", 3169 "src/regexp/experimental/experimental-bytecode.h", 3170 "src/regexp/experimental/experimental-compiler.cc", 3171 "src/regexp/experimental/experimental-compiler.h", 3172 "src/regexp/experimental/experimental-interpreter.cc", 3173 "src/regexp/experimental/experimental-interpreter.h", 3174 "src/regexp/experimental/experimental.cc", 3175 "src/regexp/experimental/experimental.h", 3176 "src/regexp/property-sequences.cc", 3177 "src/regexp/property-sequences.h", 3178 "src/regexp/regexp-ast.cc", 3179 "src/regexp/regexp-ast.h", 3180 "src/regexp/regexp-bytecode-generator-inl.h", 3181 "src/regexp/regexp-bytecode-generator.cc", 3182 "src/regexp/regexp-bytecode-generator.h", 3183 "src/regexp/regexp-bytecode-peephole.cc", 3184 "src/regexp/regexp-bytecode-peephole.h", 3185 "src/regexp/regexp-bytecodes.cc", 3186 "src/regexp/regexp-bytecodes.h", 3187 "src/regexp/regexp-compiler-tonode.cc", 3188 "src/regexp/regexp-compiler.cc", 3189 "src/regexp/regexp-compiler.h", 3190 "src/regexp/regexp-dotprinter.cc", 3191 "src/regexp/regexp-dotprinter.h", 3192 "src/regexp/regexp-error.cc", 3193 "src/regexp/regexp-error.h", 3194 "src/regexp/regexp-interpreter.cc", 3195 "src/regexp/regexp-interpreter.h", 3196 "src/regexp/regexp-macro-assembler-arch.h", 3197 "src/regexp/regexp-macro-assembler-tracer.cc", 3198 "src/regexp/regexp-macro-assembler-tracer.h", 3199 "src/regexp/regexp-macro-assembler.cc", 3200 "src/regexp/regexp-macro-assembler.h", 3201 "src/regexp/regexp-nodes.h", 3202 "src/regexp/regexp-parser.cc", 3203 "src/regexp/regexp-parser.h", 3204 "src/regexp/regexp-stack.cc", 3205 "src/regexp/regexp-stack.h", 3206 "src/regexp/regexp-utils.cc", 3207 "src/regexp/regexp-utils.h", 3208 "src/regexp/regexp.cc", 3209 "src/regexp/regexp.h", 3210 "src/regexp/special-case.h", 3211 "src/roots/roots-inl.h", 3212 "src/roots/roots.cc", 3213 "src/roots/roots.h", 3214 "src/runtime/runtime-array.cc", 3215 "src/runtime/runtime-atomics.cc", 3216 "src/runtime/runtime-bigint.cc", 3217 "src/runtime/runtime-classes.cc", 3218 "src/runtime/runtime-collections.cc", 3219 "src/runtime/runtime-compiler.cc", 3220 "src/runtime/runtime-date.cc", 3221 "src/runtime/runtime-debug.cc", 3222 "src/runtime/runtime-forin.cc", 3223 "src/runtime/runtime-function.cc", 3224 "src/runtime/runtime-futex.cc", 3225 "src/runtime/runtime-generator.cc", 3226 "src/runtime/runtime-internal.cc", 3227 "src/runtime/runtime-interpreter.cc", 3228 "src/runtime/runtime-intl.cc", 3229 "src/runtime/runtime-literals.cc", 3230 "src/runtime/runtime-module.cc", 3231 "src/runtime/runtime-numbers.cc", 3232 "src/runtime/runtime-object.cc", 3233 "src/runtime/runtime-operators.cc", 3234 "src/runtime/runtime-promise.cc", 3235 "src/runtime/runtime-proxy.cc", 3236 "src/runtime/runtime-regexp.cc", 3237 "src/runtime/runtime-scopes.cc", 3238 "src/runtime/runtime-strings.cc", 3239 "src/runtime/runtime-symbol.cc", 3240 "src/runtime/runtime-test.cc", 3241 "src/runtime/runtime-typedarray.cc", 3242 "src/runtime/runtime-utils.h", 3243 "src/runtime/runtime-wasm.cc", 3244 "src/runtime/runtime-weak-refs.cc", 3245 "src/runtime/runtime.cc", 3246 "src/runtime/runtime.h", 3247 "src/sanitizer/asan.h", 3248 "src/sanitizer/lsan-page-allocator.cc", 3249 "src/sanitizer/lsan-page-allocator.h", 3250 "src/sanitizer/msan.h", 3251 "src/sanitizer/tsan.h", 3252 "src/snapshot/code-serializer.cc", 3253 "src/snapshot/code-serializer.h", 3254 "src/snapshot/context-deserializer.cc", 3255 "src/snapshot/context-deserializer.h", 3256 "src/snapshot/context-serializer.cc", 3257 "src/snapshot/context-serializer.h", 3258 "src/snapshot/deserializer.cc", 3259 "src/snapshot/deserializer.h", 3260 "src/snapshot/embedded/embedded-data.cc", 3261 "src/snapshot/embedded/embedded-data.h", 3262 "src/snapshot/object-deserializer.cc", 3263 "src/snapshot/object-deserializer.h", 3264 "src/snapshot/read-only-deserializer.cc", 3265 "src/snapshot/read-only-deserializer.h", 3266 "src/snapshot/read-only-serializer.cc", 3267 "src/snapshot/read-only-serializer.h", 3268 "src/snapshot/references.h", 3269 "src/snapshot/roots-serializer.cc", 3270 "src/snapshot/roots-serializer.h", 3271 "src/snapshot/serializer-deserializer.cc", 3272 "src/snapshot/serializer-deserializer.h", 3273 "src/snapshot/serializer.cc", 3274 "src/snapshot/serializer.h", 3275 "src/snapshot/snapshot-compression.cc", 3276 "src/snapshot/snapshot-compression.h", 3277 "src/snapshot/snapshot-data.cc", 3278 "src/snapshot/snapshot-data.h", 3279 "src/snapshot/snapshot-source-sink.cc", 3280 "src/snapshot/snapshot-source-sink.h", 3281 "src/snapshot/snapshot-utils.cc", 3282 "src/snapshot/snapshot-utils.h", 3283 "src/snapshot/snapshot.cc", 3284 "src/snapshot/snapshot.h", 3285 "src/snapshot/startup-deserializer.cc", 3286 "src/snapshot/startup-deserializer.h", 3287 "src/snapshot/startup-serializer.cc", 3288 "src/snapshot/startup-serializer.h", 3289 "src/strings/char-predicates-inl.h", 3290 "src/strings/char-predicates.cc", 3291 "src/strings/char-predicates.h", 3292 "src/strings/string-builder-inl.h", 3293 "src/strings/string-builder.cc", 3294 "src/strings/string-case.cc", 3295 "src/strings/string-case.h", 3296 "src/strings/string-hasher-inl.h", 3297 "src/strings/string-hasher.h", 3298 "src/strings/string-search.h", 3299 "src/strings/string-stream.cc", 3300 "src/strings/string-stream.h", 3301 "src/strings/unicode-decoder.cc", 3302 "src/strings/unicode-decoder.h", 3303 "src/strings/unicode-inl.h", 3304 "src/strings/unicode.cc", 3305 "src/strings/unicode.h", 3306 "src/strings/uri.cc", 3307 "src/strings/uri.h", 3308 "src/tasks/cancelable-task.cc", 3309 "src/tasks/cancelable-task.h", 3310 "src/tasks/task-utils.cc", 3311 "src/tasks/task-utils.h", 3312 "src/third_party/siphash/halfsiphash.cc", 3313 "src/third_party/siphash/halfsiphash.h", 3314 "src/third_party/utf8-decoder/utf8-decoder.h", 3315 "src/tracing/trace-event.cc", 3316 "src/tracing/trace-event.h", 3317 "src/tracing/traced-value.cc", 3318 "src/tracing/traced-value.h", 3319 "src/tracing/tracing-category-observer.cc", 3320 "src/tracing/tracing-category-observer.h", 3321 "src/trap-handler/handler-inside.cc", 3322 "src/trap-handler/handler-outside.cc", 3323 "src/trap-handler/handler-shared.cc", 3324 "src/trap-handler/trap-handler-internal.h", 3325 "src/trap-handler/trap-handler.h", 3326 "src/utils/address-map.cc", 3327 "src/utils/address-map.h", 3328 "src/utils/allocation.cc", 3329 "src/utils/allocation.h", 3330 "src/utils/bit-vector.cc", 3331 "src/utils/bit-vector.h", 3332 "src/utils/boxed-float.h", 3333 "src/utils/detachable-vector.cc", 3334 "src/utils/detachable-vector.h", 3335 "src/utils/identity-map.cc", 3336 "src/utils/identity-map.h", 3337 "src/utils/locked-queue-inl.h", 3338 "src/utils/locked-queue.h", 3339 "src/utils/memcopy.cc", 3340 "src/utils/memcopy.h", 3341 "src/utils/ostreams.cc", 3342 "src/utils/ostreams.h", 3343 "src/utils/pointer-with-payload.h", 3344 "src/utils/scoped-list.h", 3345 "src/utils/utils-inl.h", 3346 "src/utils/utils.cc", 3347 "src/utils/utils.h", 3348 "src/utils/vector.h", 3349 "src/utils/version.cc", 3350 "src/utils/version.h", 3351 "src/wasm/baseline/liftoff-assembler-defs.h", 3352 "src/wasm/baseline/liftoff-assembler.cc", 3353 "src/wasm/baseline/liftoff-assembler.h", 3354 "src/wasm/baseline/liftoff-compiler.cc", 3355 "src/wasm/baseline/liftoff-compiler.h", 3356 "src/wasm/baseline/liftoff-register.h", 3357 "src/wasm/code-space-access.h", 3358 "src/wasm/compilation-environment.h", 3359 "src/wasm/decoder.h", 3360 "src/wasm/function-body-decoder-impl.h", 3361 "src/wasm/function-body-decoder.cc", 3362 "src/wasm/function-body-decoder.h", 3363 "src/wasm/function-compiler.cc", 3364 "src/wasm/function-compiler.h", 3365 "src/wasm/graph-builder-interface.cc", 3366 "src/wasm/graph-builder-interface.h", 3367 "src/wasm/jump-table-assembler.cc", 3368 "src/wasm/jump-table-assembler.h", 3369 "src/wasm/leb-helper.h", 3370 "src/wasm/local-decl-encoder.cc", 3371 "src/wasm/local-decl-encoder.h", 3372 "src/wasm/memory-tracing.cc", 3373 "src/wasm/memory-tracing.h", 3374 "src/wasm/module-compiler.cc", 3375 "src/wasm/module-compiler.h", 3376 "src/wasm/module-decoder.cc", 3377 "src/wasm/module-decoder.h", 3378 "src/wasm/module-instantiate.cc", 3379 "src/wasm/module-instantiate.h", 3380 "src/wasm/object-access.h", 3381 "src/wasm/signature-map.cc", 3382 "src/wasm/signature-map.h", 3383 "src/wasm/simd-shuffle.cc", 3384 "src/wasm/simd-shuffle.h", 3385 "src/wasm/streaming-decoder.cc", 3386 "src/wasm/streaming-decoder.h", 3387 "src/wasm/struct-types.h", 3388 "src/wasm/sync-streaming-decoder.cc", 3389 "src/wasm/value-type.h", 3390 "src/wasm/wasm-arguments.h", 3391 "src/wasm/wasm-code-manager.cc", 3392 "src/wasm/wasm-code-manager.h", 3393 "src/wasm/wasm-constants.h", 3394 "src/wasm/wasm-debug-evaluate.cc", 3395 "src/wasm/wasm-debug-evaluate.h", 3396 "src/wasm/wasm-debug.cc", 3397 "src/wasm/wasm-engine.cc", 3398 "src/wasm/wasm-engine.h", 3399 "src/wasm/wasm-external-refs.cc", 3400 "src/wasm/wasm-external-refs.h", 3401 "src/wasm/wasm-feature-flags.h", 3402 "src/wasm/wasm-features.cc", 3403 "src/wasm/wasm-features.h", 3404 "src/wasm/wasm-import-wrapper-cache.cc", 3405 "src/wasm/wasm-import-wrapper-cache.h", 3406 "src/wasm/wasm-js.cc", 3407 "src/wasm/wasm-js.h", 3408 "src/wasm/wasm-limits.h", 3409 "src/wasm/wasm-linkage.h", 3410 "src/wasm/wasm-module-builder.cc", 3411 "src/wasm/wasm-module-builder.h", 3412 "src/wasm/wasm-module-sourcemap.cc", 3413 "src/wasm/wasm-module-sourcemap.h", 3414 "src/wasm/wasm-module.cc", 3415 "src/wasm/wasm-module.h", 3416 "src/wasm/wasm-objects-inl.h", 3417 "src/wasm/wasm-objects.cc", 3418 "src/wasm/wasm-objects.h", 3419 "src/wasm/wasm-opcodes.cc", 3420 "src/wasm/wasm-opcodes.h", 3421 "src/wasm/wasm-result.cc", 3422 "src/wasm/wasm-result.h", 3423 "src/wasm/wasm-serialization.cc", 3424 "src/wasm/wasm-serialization.h", 3425 "src/wasm/wasm-subtyping.cc", 3426 "src/wasm/wasm-subtyping.h", 3427 "src/wasm/wasm-tier.h", 3428 "src/wasm/wasm-value.h", 3429 "src/zone/accounting-allocator.cc", 3430 "src/zone/accounting-allocator.h", 3431 "src/zone/compressed-zone-ptr.h", 3432 "src/zone/type-stats.cc", 3433 "src/zone/type-stats.h", 3434 "src/zone/zone-allocator.h", 3435 "src/zone/zone-chunk-list.h", 3436 "src/zone/zone-compression.h", 3437 "src/zone/zone-containers.h", 3438 "src/zone/zone-handle-set.h", 3439 "src/zone/zone-hashmap.h", 3440 "src/zone/zone-list-inl.h", 3441 "src/zone/zone-list.h", 3442 "src/zone/zone-segment.cc", 3443 "src/zone/zone-segment.h", 3444 "src/zone/zone-type-traits.h", 3445 "src/zone/zone-utils.h", 3446 "src/zone/zone.cc", 3447 "src/zone/zone.h", 3448 ] 3449 3450 if (!v8_control_flow_integrity) { 3451 sources += [ "src/execution/pointer-authentication-dummy.h" ] 3452 } 3453 3454 if (v8_enable_third_party_heap) { 3455 sources += v8_third_party_heap_files 3456 } else { 3457 sources += [ "src/heap/third-party/heap-api-stub.cc" ] 3458 } 3459 3460 if (v8_enable_conservative_stack_scanning) { 3461 sources += [ 3462 "src/heap/conservative-stack-visitor.cc", 3463 "src/heap/conservative-stack-visitor.h", 3464 "src/heap/object-start-bitmap.h", 3465 ] 3466 } 3467 3468 if (v8_enable_wasm_gdb_remote_debugging) { 3469 sources += [ 3470 "src/debug/wasm/gdb-server/gdb-remote-util.cc", 3471 "src/debug/wasm/gdb-server/gdb-remote-util.h", 3472 "src/debug/wasm/gdb-server/gdb-server-thread.cc", 3473 "src/debug/wasm/gdb-server/gdb-server-thread.h", 3474 "src/debug/wasm/gdb-server/gdb-server.cc", 3475 "src/debug/wasm/gdb-server/gdb-server.h", 3476 "src/debug/wasm/gdb-server/packet.cc", 3477 "src/debug/wasm/gdb-server/packet.h", 3478 "src/debug/wasm/gdb-server/session.cc", 3479 "src/debug/wasm/gdb-server/session.h", 3480 "src/debug/wasm/gdb-server/target.cc", 3481 "src/debug/wasm/gdb-server/target.h", 3482 "src/debug/wasm/gdb-server/transport.cc", 3483 "src/debug/wasm/gdb-server/transport.h", 3484 "src/debug/wasm/gdb-server/wasm-module-debug.cc", 3485 "src/debug/wasm/gdb-server/wasm-module-debug.h", 3486 ] 3487 } 3488 3489 if (v8_check_header_includes) { 3490 # This file will be generated by tools/generate-header-include-checks.py 3491 # if the "check_v8_header_includes" gclient variable is set. 3492 import("check-header-includes/sources.gni") 3493 sources += check_header_includes_sources 3494 } 3495 3496 if (v8_current_cpu == "x86") { 3497 sources += [ ### gcmole(arch:ia32) ### 3498 "src/codegen/ia32/assembler-ia32-inl.h", 3499 "src/codegen/ia32/assembler-ia32.cc", 3500 "src/codegen/ia32/assembler-ia32.h", 3501 "src/codegen/ia32/constants-ia32.h", 3502 "src/codegen/ia32/cpu-ia32.cc", 3503 "src/codegen/ia32/interface-descriptors-ia32.cc", 3504 "src/codegen/ia32/macro-assembler-ia32.cc", 3505 "src/codegen/ia32/macro-assembler-ia32.h", 3506 "src/codegen/ia32/register-ia32.h", 3507 "src/codegen/ia32/sse-instr.h", 3508 "src/compiler/backend/ia32/code-generator-ia32.cc", 3509 "src/compiler/backend/ia32/instruction-codes-ia32.h", 3510 "src/compiler/backend/ia32/instruction-scheduler-ia32.cc", 3511 "src/compiler/backend/ia32/instruction-selector-ia32.cc", 3512 "src/debug/ia32/debug-ia32.cc", 3513 "src/deoptimizer/ia32/deoptimizer-ia32.cc", 3514 "src/diagnostics/ia32/disasm-ia32.cc", 3515 "src/diagnostics/ia32/unwinder-ia32.cc", 3516 "src/execution/ia32/frame-constants-ia32.cc", 3517 "src/execution/ia32/frame-constants-ia32.h", 3518 "src/regexp/ia32/regexp-macro-assembler-ia32.cc", 3519 "src/regexp/ia32/regexp-macro-assembler-ia32.h", 3520 "src/wasm/baseline/ia32/liftoff-assembler-ia32.h", 3521 ] 3522 } else if (v8_current_cpu == "x64") { 3523 sources += [ ### gcmole(arch:x64) ### 3524 "src/codegen/x64/assembler-x64-inl.h", 3525 "src/codegen/x64/assembler-x64.cc", 3526 "src/codegen/x64/assembler-x64.h", 3527 "src/codegen/x64/constants-x64.h", 3528 "src/codegen/x64/cpu-x64.cc", 3529 "src/codegen/x64/fma-instr.h", 3530 "src/codegen/x64/interface-descriptors-x64.cc", 3531 "src/codegen/x64/macro-assembler-x64.cc", 3532 "src/codegen/x64/macro-assembler-x64.h", 3533 "src/codegen/x64/register-x64.h", 3534 "src/codegen/x64/sse-instr.h", 3535 "src/compiler/backend/x64/code-generator-x64.cc", 3536 "src/compiler/backend/x64/instruction-codes-x64.h", 3537 "src/compiler/backend/x64/instruction-scheduler-x64.cc", 3538 "src/compiler/backend/x64/instruction-selector-x64.cc", 3539 "src/compiler/backend/x64/unwinding-info-writer-x64.cc", 3540 "src/compiler/backend/x64/unwinding-info-writer-x64.h", 3541 "src/debug/x64/debug-x64.cc", 3542 "src/deoptimizer/x64/deoptimizer-x64.cc", 3543 "src/diagnostics/x64/disasm-x64.cc", 3544 "src/diagnostics/x64/eh-frame-x64.cc", 3545 "src/diagnostics/x64/unwinder-x64.cc", 3546 "src/execution/x64/frame-constants-x64.cc", 3547 "src/execution/x64/frame-constants-x64.h", 3548 "src/regexp/x64/regexp-macro-assembler-x64.cc", 3549 "src/regexp/x64/regexp-macro-assembler-x64.h", 3550 "src/third_party/valgrind/valgrind.h", 3551 "src/wasm/baseline/x64/liftoff-assembler-x64.h", 3552 ] 3553 3554 # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both 3555 # based on Darwin and thus POSIX-compliant to a similar degree. 3556 if (is_linux || is_chromeos || is_mac || is_ios || target_os == "freebsd") { 3557 sources += [ 3558 "src/trap-handler/handler-inside-posix.cc", 3559 "src/trap-handler/handler-inside-posix.h", 3560 "src/trap-handler/handler-outside-posix.cc", 3561 ] 3562 } 3563 if (is_win) { 3564 sources += [ 3565 "src/diagnostics/unwinding-info-win64.cc", 3566 "src/diagnostics/unwinding-info-win64.h", 3567 "src/trap-handler/handler-inside-win.cc", 3568 "src/trap-handler/handler-inside-win.h", 3569 "src/trap-handler/handler-outside-win.cc", 3570 ] 3571 } 3572 } else if (v8_current_cpu == "arm") { 3573 sources += [ ### gcmole(arch:arm) ### 3574 "src/codegen/arm/assembler-arm-inl.h", 3575 "src/codegen/arm/assembler-arm.cc", 3576 "src/codegen/arm/assembler-arm.h", 3577 "src/codegen/arm/constants-arm.cc", 3578 "src/codegen/arm/constants-arm.h", 3579 "src/codegen/arm/cpu-arm.cc", 3580 "src/codegen/arm/interface-descriptors-arm.cc", 3581 "src/codegen/arm/macro-assembler-arm.cc", 3582 "src/codegen/arm/macro-assembler-arm.h", 3583 "src/codegen/arm/register-arm.h", 3584 "src/compiler/backend/arm/code-generator-arm.cc", 3585 "src/compiler/backend/arm/instruction-codes-arm.h", 3586 "src/compiler/backend/arm/instruction-scheduler-arm.cc", 3587 "src/compiler/backend/arm/instruction-selector-arm.cc", 3588 "src/compiler/backend/arm/unwinding-info-writer-arm.cc", 3589 "src/compiler/backend/arm/unwinding-info-writer-arm.h", 3590 "src/debug/arm/debug-arm.cc", 3591 "src/deoptimizer/arm/deoptimizer-arm.cc", 3592 "src/diagnostics/arm/disasm-arm.cc", 3593 "src/diagnostics/arm/eh-frame-arm.cc", 3594 "src/diagnostics/arm/unwinder-arm.cc", 3595 "src/execution/arm/frame-constants-arm.cc", 3596 "src/execution/arm/frame-constants-arm.h", 3597 "src/execution/arm/simulator-arm.cc", 3598 "src/execution/arm/simulator-arm.h", 3599 "src/regexp/arm/regexp-macro-assembler-arm.cc", 3600 "src/regexp/arm/regexp-macro-assembler-arm.h", 3601 "src/wasm/baseline/arm/liftoff-assembler-arm.h", 3602 ] 3603 } else if (v8_current_cpu == "arm64") { 3604 sources += [ ### gcmole(arch:arm64) ### 3605 "src/codegen/arm64/assembler-arm64-inl.h", 3606 "src/codegen/arm64/assembler-arm64.cc", 3607 "src/codegen/arm64/assembler-arm64.h", 3608 "src/codegen/arm64/constants-arm64.h", 3609 "src/codegen/arm64/cpu-arm64.cc", 3610 "src/codegen/arm64/decoder-arm64-inl.h", 3611 "src/codegen/arm64/decoder-arm64.cc", 3612 "src/codegen/arm64/decoder-arm64.h", 3613 "src/codegen/arm64/instructions-arm64-constants.cc", 3614 "src/codegen/arm64/instructions-arm64.cc", 3615 "src/codegen/arm64/instructions-arm64.h", 3616 "src/codegen/arm64/interface-descriptors-arm64.cc", 3617 "src/codegen/arm64/macro-assembler-arm64-inl.h", 3618 "src/codegen/arm64/macro-assembler-arm64.cc", 3619 "src/codegen/arm64/macro-assembler-arm64.h", 3620 "src/codegen/arm64/register-arm64.cc", 3621 "src/codegen/arm64/register-arm64.h", 3622 "src/codegen/arm64/utils-arm64.cc", 3623 "src/codegen/arm64/utils-arm64.h", 3624 "src/compiler/backend/arm64/code-generator-arm64.cc", 3625 "src/compiler/backend/arm64/instruction-codes-arm64.h", 3626 "src/compiler/backend/arm64/instruction-scheduler-arm64.cc", 3627 "src/compiler/backend/arm64/instruction-selector-arm64.cc", 3628 "src/compiler/backend/arm64/unwinding-info-writer-arm64.cc", 3629 "src/compiler/backend/arm64/unwinding-info-writer-arm64.h", 3630 "src/debug/arm64/debug-arm64.cc", 3631 "src/deoptimizer/arm64/deoptimizer-arm64.cc", 3632 "src/diagnostics/arm64/disasm-arm64.cc", 3633 "src/diagnostics/arm64/disasm-arm64.h", 3634 "src/diagnostics/arm64/eh-frame-arm64.cc", 3635 "src/diagnostics/arm64/unwinder-arm64.cc", 3636 "src/execution/arm64/frame-constants-arm64.cc", 3637 "src/execution/arm64/frame-constants-arm64.h", 3638 "src/execution/arm64/pointer-auth-arm64.cc", 3639 "src/execution/arm64/simulator-arm64.cc", 3640 "src/execution/arm64/simulator-arm64.h", 3641 "src/execution/arm64/simulator-logic-arm64.cc", 3642 "src/regexp/arm64/regexp-macro-assembler-arm64.cc", 3643 "src/regexp/arm64/regexp-macro-assembler-arm64.h", 3644 "src/wasm/baseline/arm64/liftoff-assembler-arm64.h", 3645 ] 3646 if (v8_control_flow_integrity) { 3647 sources += [ "src/execution/arm64/pointer-authentication-arm64.h" ] 3648 } 3649 if (is_win) { 3650 sources += [ 3651 "src/diagnostics/unwinding-info-win64.cc", 3652 "src/diagnostics/unwinding-info-win64.h", 3653 ] 3654 } 3655 } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { 3656 sources += [ ### gcmole(arch:mipsel) ### 3657 "src/codegen/mips/assembler-mips-inl.h", 3658 "src/codegen/mips/assembler-mips.cc", 3659 "src/codegen/mips/assembler-mips.h", 3660 "src/codegen/mips/constants-mips.cc", 3661 "src/codegen/mips/constants-mips.h", 3662 "src/codegen/mips/cpu-mips.cc", 3663 "src/codegen/mips/interface-descriptors-mips.cc", 3664 "src/codegen/mips/macro-assembler-mips.cc", 3665 "src/codegen/mips/macro-assembler-mips.h", 3666 "src/codegen/mips/register-mips.h", 3667 "src/compiler/backend/mips/code-generator-mips.cc", 3668 "src/compiler/backend/mips/instruction-codes-mips.h", 3669 "src/compiler/backend/mips/instruction-scheduler-mips.cc", 3670 "src/compiler/backend/mips/instruction-selector-mips.cc", 3671 "src/debug/mips/debug-mips.cc", 3672 "src/deoptimizer/mips/deoptimizer-mips.cc", 3673 "src/diagnostics/mips/disasm-mips.cc", 3674 "src/diagnostics/mips/unwinder-mips.cc", 3675 "src/execution/mips/frame-constants-mips.cc", 3676 "src/execution/mips/frame-constants-mips.h", 3677 "src/execution/mips/simulator-mips.cc", 3678 "src/execution/mips/simulator-mips.h", 3679 "src/regexp/mips/regexp-macro-assembler-mips.cc", 3680 "src/regexp/mips/regexp-macro-assembler-mips.h", 3681 "src/wasm/baseline/mips/liftoff-assembler-mips.h", 3682 ] 3683 } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { 3684 sources += [ ### gcmole(arch:mips64el) ### 3685 "src/codegen/mips64/assembler-mips64-inl.h", 3686 "src/codegen/mips64/assembler-mips64.cc", 3687 "src/codegen/mips64/assembler-mips64.h", 3688 "src/codegen/mips64/constants-mips64.cc", 3689 "src/codegen/mips64/constants-mips64.h", 3690 "src/codegen/mips64/cpu-mips64.cc", 3691 "src/codegen/mips64/interface-descriptors-mips64.cc", 3692 "src/codegen/mips64/macro-assembler-mips64.cc", 3693 "src/codegen/mips64/macro-assembler-mips64.h", 3694 "src/codegen/mips64/register-mips64.h", 3695 "src/compiler/backend/mips64/code-generator-mips64.cc", 3696 "src/compiler/backend/mips64/instruction-codes-mips64.h", 3697 "src/compiler/backend/mips64/instruction-scheduler-mips64.cc", 3698 "src/compiler/backend/mips64/instruction-selector-mips64.cc", 3699 "src/debug/mips64/debug-mips64.cc", 3700 "src/deoptimizer/mips64/deoptimizer-mips64.cc", 3701 "src/diagnostics/mips64/disasm-mips64.cc", 3702 "src/diagnostics/mips64/unwinder-mips64.cc", 3703 "src/execution/mips64/frame-constants-mips64.cc", 3704 "src/execution/mips64/frame-constants-mips64.h", 3705 "src/execution/mips64/simulator-mips64.cc", 3706 "src/execution/mips64/simulator-mips64.h", 3707 "src/regexp/mips64/regexp-macro-assembler-mips64.cc", 3708 "src/regexp/mips64/regexp-macro-assembler-mips64.h", 3709 "src/wasm/baseline/mips64/liftoff-assembler-mips64.h", 3710 ] 3711 } else if (v8_current_cpu == "ppc") { 3712 sources += [ ### gcmole(arch:ppc) ### 3713 "src/codegen/ppc/assembler-ppc-inl.h", 3714 "src/codegen/ppc/assembler-ppc.cc", 3715 "src/codegen/ppc/assembler-ppc.h", 3716 "src/codegen/ppc/constants-ppc.cc", 3717 "src/codegen/ppc/constants-ppc.h", 3718 "src/codegen/ppc/cpu-ppc.cc", 3719 "src/codegen/ppc/interface-descriptors-ppc.cc", 3720 "src/codegen/ppc/macro-assembler-ppc.cc", 3721 "src/codegen/ppc/macro-assembler-ppc.h", 3722 "src/codegen/ppc/register-ppc.h", 3723 "src/compiler/backend/ppc/code-generator-ppc.cc", 3724 "src/compiler/backend/ppc/instruction-codes-ppc.h", 3725 "src/compiler/backend/ppc/instruction-scheduler-ppc.cc", 3726 "src/compiler/backend/ppc/instruction-selector-ppc.cc", 3727 "src/compiler/backend/ppc/unwinding-info-writer-ppc.cc", 3728 "src/compiler/backend/ppc/unwinding-info-writer-ppc.h", 3729 "src/debug/ppc/debug-ppc.cc", 3730 "src/deoptimizer/ppc/deoptimizer-ppc.cc", 3731 "src/diagnostics/ppc/disasm-ppc.cc", 3732 "src/diagnostics/ppc/eh-frame-ppc.cc", 3733 "src/diagnostics/ppc/unwinder-ppc.cc", 3734 "src/execution/ppc/frame-constants-ppc.cc", 3735 "src/execution/ppc/frame-constants-ppc.h", 3736 "src/execution/ppc/simulator-ppc.cc", 3737 "src/execution/ppc/simulator-ppc.h", 3738 "src/regexp/ppc/regexp-macro-assembler-ppc.cc", 3739 "src/regexp/ppc/regexp-macro-assembler-ppc.h", 3740 "src/wasm/baseline/ppc/liftoff-assembler-ppc.h", 3741 ] 3742 } else if (v8_current_cpu == "ppc64") { 3743 sources += [ ### gcmole(arch:ppc64) ### 3744 "src/codegen/ppc/assembler-ppc-inl.h", 3745 "src/codegen/ppc/assembler-ppc.cc", 3746 "src/codegen/ppc/assembler-ppc.h", 3747 "src/codegen/ppc/constants-ppc.cc", 3748 "src/codegen/ppc/constants-ppc.h", 3749 "src/codegen/ppc/cpu-ppc.cc", 3750 "src/codegen/ppc/interface-descriptors-ppc.cc", 3751 "src/codegen/ppc/macro-assembler-ppc.cc", 3752 "src/codegen/ppc/macro-assembler-ppc.h", 3753 "src/codegen/ppc/register-ppc.h", 3754 "src/compiler/backend/ppc/code-generator-ppc.cc", 3755 "src/compiler/backend/ppc/instruction-codes-ppc.h", 3756 "src/compiler/backend/ppc/instruction-scheduler-ppc.cc", 3757 "src/compiler/backend/ppc/instruction-selector-ppc.cc", 3758 "src/compiler/backend/ppc/unwinding-info-writer-ppc.cc", 3759 "src/compiler/backend/ppc/unwinding-info-writer-ppc.h", 3760 "src/debug/ppc/debug-ppc.cc", 3761 "src/deoptimizer/ppc/deoptimizer-ppc.cc", 3762 "src/diagnostics/ppc/disasm-ppc.cc", 3763 "src/diagnostics/ppc/eh-frame-ppc.cc", 3764 "src/diagnostics/ppc/unwinder-ppc.cc", 3765 "src/execution/ppc/frame-constants-ppc.cc", 3766 "src/execution/ppc/frame-constants-ppc.h", 3767 "src/execution/ppc/simulator-ppc.cc", 3768 "src/execution/ppc/simulator-ppc.h", 3769 "src/regexp/ppc/regexp-macro-assembler-ppc.cc", 3770 "src/regexp/ppc/regexp-macro-assembler-ppc.h", 3771 "src/wasm/baseline/ppc/liftoff-assembler-ppc.h", 3772 ] 3773 } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { 3774 sources += [ ### gcmole(arch:s390) ### 3775 "src/codegen/s390/assembler-s390-inl.h", 3776 "src/codegen/s390/assembler-s390.cc", 3777 "src/codegen/s390/assembler-s390.h", 3778 "src/codegen/s390/constants-s390.cc", 3779 "src/codegen/s390/constants-s390.h", 3780 "src/codegen/s390/cpu-s390.cc", 3781 "src/codegen/s390/interface-descriptors-s390.cc", 3782 "src/codegen/s390/macro-assembler-s390.cc", 3783 "src/codegen/s390/macro-assembler-s390.h", 3784 "src/codegen/s390/register-s390.h", 3785 "src/compiler/backend/s390/code-generator-s390.cc", 3786 "src/compiler/backend/s390/instruction-codes-s390.h", 3787 "src/compiler/backend/s390/instruction-scheduler-s390.cc", 3788 "src/compiler/backend/s390/instruction-selector-s390.cc", 3789 "src/compiler/backend/s390/unwinding-info-writer-s390.cc", 3790 "src/compiler/backend/s390/unwinding-info-writer-s390.h", 3791 "src/debug/s390/debug-s390.cc", 3792 "src/deoptimizer/s390/deoptimizer-s390.cc", 3793 "src/diagnostics/s390/disasm-s390.cc", 3794 "src/diagnostics/s390/eh-frame-s390.cc", 3795 "src/diagnostics/s390/unwinder-s390.cc", 3796 "src/execution/s390/frame-constants-s390.cc", 3797 "src/execution/s390/frame-constants-s390.h", 3798 "src/execution/s390/simulator-s390.cc", 3799 "src/execution/s390/simulator-s390.h", 3800 "src/regexp/s390/regexp-macro-assembler-s390.cc", 3801 "src/regexp/s390/regexp-macro-assembler-s390.h", 3802 "src/wasm/baseline/s390/liftoff-assembler-s390.h", 3803 ] 3804 } 3805 3806 configs = [ 3807 ":internal_config", 3808 ":cppgc_base_config", 3809 ] 3810 3811 defines = [] 3812 deps = [ 3813 ":cppgc_base", 3814 ":torque_generated_definitions", 3815 ":v8_cppgc_shared", 3816 ":v8_headers", 3817 ":v8_libbase", 3818 ":v8_libsampler", 3819 ":v8_shared_internal_headers", 3820 ":v8_tracing", 3821 ":v8_version", 3822 "src/inspector:inspector", 3823 ] 3824 3825 public_deps = [ 3826 ":generate_bytecode_builtins_list", 3827 ":run_torque", 3828 ":v8_maybe_icu", 3829 ] 3830 3831 if (v8_enable_i18n_support) { 3832 deps += [ ":run_gen-regexp-special-case" ] 3833 sources += [ "$target_gen_dir/src/regexp/special-case.cc" ] 3834 if (is_win) { 3835 deps += [ "//third_party/icu:icudata" ] 3836 } 3837 } else { 3838 sources -= [ 3839 "src/builtins/builtins-intl.cc", 3840 "src/objects/intl-objects.cc", 3841 "src/objects/intl-objects.h", 3842 "src/objects/js-break-iterator-inl.h", 3843 "src/objects/js-break-iterator.cc", 3844 "src/objects/js-break-iterator.h", 3845 "src/objects/js-collator-inl.h", 3846 "src/objects/js-collator.cc", 3847 "src/objects/js-collator.h", 3848 "src/objects/js-date-time-format-inl.h", 3849 "src/objects/js-date-time-format.cc", 3850 "src/objects/js-date-time-format.h", 3851 "src/objects/js-display-names-inl.h", 3852 "src/objects/js-display-names.cc", 3853 "src/objects/js-display-names.h", 3854 "src/objects/js-list-format-inl.h", 3855 "src/objects/js-list-format.cc", 3856 "src/objects/js-list-format.h", 3857 "src/objects/js-locale-inl.h", 3858 "src/objects/js-locale.cc", 3859 "src/objects/js-locale.h", 3860 "src/objects/js-number-format-inl.h", 3861 "src/objects/js-number-format.cc", 3862 "src/objects/js-number-format.h", 3863 "src/objects/js-plural-rules-inl.h", 3864 "src/objects/js-plural-rules.cc", 3865 "src/objects/js-plural-rules.h", 3866 "src/objects/js-relative-time-format-inl.h", 3867 "src/objects/js-relative-time-format.cc", 3868 "src/objects/js-relative-time-format.h", 3869 "src/objects/js-segment-iterator-inl.h", 3870 "src/objects/js-segment-iterator.cc", 3871 "src/objects/js-segment-iterator.h", 3872 "src/objects/js-segmenter-inl.h", 3873 "src/objects/js-segmenter.cc", 3874 "src/objects/js-segmenter.h", 3875 "src/objects/js-segments-inl.h", 3876 "src/objects/js-segments.cc", 3877 "src/objects/js-segments.h", 3878 "src/runtime/runtime-intl.cc", 3879 "src/strings/char-predicates.cc", 3880 ] 3881 } 3882 3883 deps += [ 3884 "//third_party/zlib", 3885 "//third_party/zlib/google:compression_utils_portable", 3886 ] 3887 3888 if (v8_postmortem_support) { 3889 sources += [ "$target_gen_dir/debug-support.cc" ] 3890 deps += [ ":postmortem-metadata" ] 3891 } 3892 3893 libs = [] 3894 3895 if (v8_enable_third_party_heap) { 3896 libs += v8_third_party_heap_libs 3897 } 3898 3899 # Platforms that don't have CAS support need to link atomic library 3900 # to implement atomic memory access 3901 if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" || 3902 v8_current_cpu == "mips64" || v8_current_cpu == "mips64el" || 3903 v8_current_cpu == "ppc" || v8_current_cpu == "ppc64" || 3904 v8_current_cpu == "s390" || v8_current_cpu == "s390x") { 3905 libs += [ "atomic" ] 3906 } 3907 3908 if (v8_enable_vtunetracemark && (is_linux || is_chromeos || is_win)) { 3909 sources += [ 3910 "src/extensions/vtunedomain-support-extension.cc", 3911 "src/extensions/vtunedomain-support-extension.h", 3912 ] 3913 deps += [ "src/third_party/vtune:v8_vtune_trace_mark" ] 3914 } 3915 3916 if (v8_use_perfetto) { 3917 sources -= [ "//base/trace_event/common/trace_event_common.h" ] 3918 sources += [ 3919 "src/tracing/trace-categories.cc", 3920 "src/tracing/trace-categories.h", 3921 ] 3922 } 3923} 3924 3925group("v8_base") { 3926 public_deps = [ 3927 ":v8_base_without_compiler", 3928 ":v8_compiler", 3929 ] 3930} 3931 3932v8_source_set("torque_base") { 3933 visibility = [ ":*" ] # Only targets in this file can depend on this. 3934 3935 sources = [ 3936 "src/torque/ast.h", 3937 "src/torque/cc-generator.cc", 3938 "src/torque/cc-generator.h", 3939 "src/torque/cfg.cc", 3940 "src/torque/cfg.h", 3941 "src/torque/class-debug-reader-generator.cc", 3942 "src/torque/constants.h", 3943 "src/torque/contextual.h", 3944 "src/torque/csa-generator.cc", 3945 "src/torque/csa-generator.h", 3946 "src/torque/declarable.cc", 3947 "src/torque/declarable.h", 3948 "src/torque/declaration-visitor.cc", 3949 "src/torque/declaration-visitor.h", 3950 "src/torque/declarations.cc", 3951 "src/torque/declarations.h", 3952 "src/torque/earley-parser.cc", 3953 "src/torque/earley-parser.h", 3954 "src/torque/global-context.cc", 3955 "src/torque/global-context.h", 3956 "src/torque/implementation-visitor.cc", 3957 "src/torque/implementation-visitor.h", 3958 "src/torque/instance-type-generator.cc", 3959 "src/torque/instructions.cc", 3960 "src/torque/instructions.h", 3961 "src/torque/parameter-difference.h", 3962 "src/torque/server-data.cc", 3963 "src/torque/server-data.h", 3964 "src/torque/source-positions.cc", 3965 "src/torque/source-positions.h", 3966 "src/torque/torque-code-generator.cc", 3967 "src/torque/torque-code-generator.h", 3968 "src/torque/torque-compiler.cc", 3969 "src/torque/torque-compiler.h", 3970 "src/torque/torque-parser.cc", 3971 "src/torque/torque-parser.h", 3972 "src/torque/type-inference.cc", 3973 "src/torque/type-inference.h", 3974 "src/torque/type-oracle.cc", 3975 "src/torque/type-oracle.h", 3976 "src/torque/type-visitor.cc", 3977 "src/torque/type-visitor.h", 3978 "src/torque/types.cc", 3979 "src/torque/types.h", 3980 "src/torque/utils.cc", 3981 "src/torque/utils.h", 3982 ] 3983 3984 deps = [ ":v8_shared_internal_headers" ] 3985 3986 public_deps = [ ":v8_libbase" ] 3987 3988 # The use of exceptions for Torque in violation of the Chromium style-guide 3989 # is justified by the fact that it is only used from the non-essential 3990 # language server and can be removed anytime if it causes problems. 3991 configs = [ 3992 ":internal_config", 3993 "//build/config/compiler:exceptions", 3994 "//build/config/compiler:rtti", 3995 ] 3996 3997 remove_configs = [ 3998 "//build/config/compiler:no_exceptions", 3999 "//build/config/compiler:no_rtti", 4000 ] 4001 4002 if (is_win && is_asan) { 4003 # Due to a bug in ASAN on Windows (chromium:893437), we disable ASAN for 4004 # Torque on Windows. 4005 remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ] 4006 } 4007 4008 if (is_debug && !v8_optimized_debug && v8_enable_fast_torque) { 4009 # The :no_optimize config is added to v8_add_configs in v8.gni. 4010 remove_configs += [ "//build/config/compiler:no_optimize" ] 4011 configs += [ ":always_optimize" ] 4012 } 4013} 4014 4015v8_source_set("torque_ls_base") { 4016 sources = [ 4017 "src/torque/ls/globals.h", 4018 "src/torque/ls/json-parser.cc", 4019 "src/torque/ls/json-parser.h", 4020 "src/torque/ls/json.cc", 4021 "src/torque/ls/json.h", 4022 "src/torque/ls/message-handler.cc", 4023 "src/torque/ls/message-handler.h", 4024 "src/torque/ls/message-macros.h", 4025 "src/torque/ls/message-pipe.h", 4026 "src/torque/ls/message.h", 4027 ] 4028 4029 public_deps = [ ":torque_base" ] 4030 4031 # The use of exceptions for Torque in violation of the Chromium style-guide 4032 # is justified by the fact that it is only used from the non-essential 4033 # language server and can be removed anytime if it causes problems. 4034 configs = [ 4035 ":internal_config", 4036 "//build/config/compiler:exceptions", 4037 "//build/config/compiler:rtti", 4038 ] 4039 4040 remove_configs = [ 4041 "//build/config/compiler:no_exceptions", 4042 "//build/config/compiler:no_rtti", 4043 ] 4044 4045 if (is_win && is_asan) { 4046 remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ] 4047 } 4048} 4049 4050v8_component("v8_libbase") { 4051 sources = [ 4052 "src/base/address-region.h", 4053 "src/base/atomic-utils.h", 4054 "src/base/atomicops.h", 4055 "src/base/atomicops_internals_atomicword_compat.h", 4056 "src/base/atomicops_internals_portable.h", 4057 "src/base/atomicops_internals_std.h", 4058 "src/base/base-export.h", 4059 "src/base/bit-field.h", 4060 "src/base/bits-iterator.h", 4061 "src/base/bits.cc", 4062 "src/base/bits.h", 4063 "src/base/bounded-page-allocator.cc", 4064 "src/base/bounded-page-allocator.h", 4065 "src/base/bounds.h", 4066 "src/base/build_config.h", 4067 "src/base/compiler-specific.h", 4068 "src/base/cpu.cc", 4069 "src/base/cpu.h", 4070 "src/base/debug/stack_trace.cc", 4071 "src/base/debug/stack_trace.h", 4072 "src/base/division-by-constant.cc", 4073 "src/base/division-by-constant.h", 4074 "src/base/enum-set.h", 4075 "src/base/export-template.h", 4076 "src/base/file-utils.cc", 4077 "src/base/file-utils.h", 4078 "src/base/flags.h", 4079 "src/base/free_deleter.h", 4080 "src/base/functional.cc", 4081 "src/base/functional.h", 4082 "src/base/hashmap-entry.h", 4083 "src/base/hashmap.h", 4084 "src/base/ieee754.cc", 4085 "src/base/ieee754.h", 4086 "src/base/iterator.h", 4087 "src/base/lazy-instance.h", 4088 "src/base/logging.cc", 4089 "src/base/logging.h", 4090 "src/base/lsan.h", 4091 "src/base/macros.h", 4092 "src/base/memory.h", 4093 "src/base/once.cc", 4094 "src/base/once.h", 4095 "src/base/optional.h", 4096 "src/base/overflowing-math.h", 4097 "src/base/page-allocator.cc", 4098 "src/base/page-allocator.h", 4099 "src/base/platform/condition-variable.cc", 4100 "src/base/platform/condition-variable.h", 4101 "src/base/platform/elapsed-timer.h", 4102 "src/base/platform/mutex.cc", 4103 "src/base/platform/mutex.h", 4104 "src/base/platform/platform.h", 4105 "src/base/platform/semaphore.cc", 4106 "src/base/platform/semaphore.h", 4107 "src/base/platform/time.cc", 4108 "src/base/platform/time.h", 4109 "src/base/platform/wrappers.h", 4110 "src/base/platform/wrappers_std.cc", 4111 "src/base/region-allocator.cc", 4112 "src/base/region-allocator.h", 4113 "src/base/ring-buffer.h", 4114 "src/base/safe_conversions.h", 4115 "src/base/safe_conversions_arm_impl.h", 4116 "src/base/safe_conversions_impl.h", 4117 "src/base/small-vector.h", 4118 "src/base/sys-info.cc", 4119 "src/base/sys-info.h", 4120 "src/base/template-utils.h", 4121 "src/base/timezone-cache.h", 4122 "src/base/type-traits.h", 4123 "src/base/utils/random-number-generator.cc", 4124 "src/base/utils/random-number-generator.h", 4125 "src/base/vlq-base64.cc", 4126 "src/base/vlq-base64.h", 4127 ] 4128 4129 configs = [ ":internal_config_base" ] 4130 4131 public_configs = [ ":libbase_config" ] 4132 4133 deps = [ ":v8_headers" ] 4134 4135 public_deps = [] 4136 4137 data = [] 4138 4139 data_deps = [] 4140 4141 defines = [] 4142 4143 if (is_component_build) { 4144 defines = [ "BUILDING_V8_BASE_SHARED" ] 4145 } 4146 4147 if (is_posix || is_fuchsia) { 4148 sources += [ 4149 "src/base/platform/platform-posix.cc", 4150 "src/base/platform/platform-posix.h", 4151 ] 4152 if (current_os != "aix") { 4153 sources += [ 4154 "src/base/platform/platform-posix-time.cc", 4155 "src/base/platform/platform-posix-time.h", 4156 ] 4157 } 4158 } 4159 4160 if (is_bsd) { 4161 sources += [ 4162 "src/base/debug/stack_trace_posix.cc", 4163 "src/base/platform/platform-freebsd.cc", 4164 ] 4165 libs = [ "rt", "execinfo" ] 4166 } else if (is_linux || is_chromeos) { 4167 sources += [ 4168 "src/base/debug/stack_trace_posix.cc", 4169 "src/base/platform/platform-linux.cc", 4170 ] 4171 4172 libs = [ 4173 "dl", 4174 "rt", 4175 ] 4176 } else if (current_os == "aix") { 4177 sources += [ 4178 "src/base/debug/stack_trace_posix.cc", 4179 "src/base/platform/platform-aix.cc", 4180 ] 4181 4182 libs = [ 4183 "dl", 4184 "rt", 4185 ] 4186 } else if (is_android) { 4187 if (current_toolchain == host_toolchain) { 4188 libs = [ 4189 "dl", 4190 "rt", 4191 ] 4192 if (host_os == "mac") { 4193 sources += [ 4194 "src/base/debug/stack_trace_posix.cc", 4195 "src/base/platform/platform-macos.cc", 4196 ] 4197 } else { 4198 sources += [ 4199 "src/base/debug/stack_trace_posix.cc", 4200 "src/base/platform/platform-linux.cc", 4201 ] 4202 } 4203 } else { 4204 sources += [ 4205 "src/base/debug/stack_trace_android.cc", 4206 "src/base/platform/platform-linux.cc", 4207 ] 4208 } 4209 } else if (is_fuchsia) { 4210 sources += [ 4211 "src/base/debug/stack_trace_fuchsia.cc", 4212 "src/base/platform/platform-fuchsia.cc", 4213 ] 4214 } else if (is_mac || is_ios) { 4215 sources += [ 4216 "src/base/debug/stack_trace_posix.cc", 4217 "src/base/platform/platform-macos.cc", 4218 ] 4219 } else if (is_win) { 4220 # TODO(jochen): Add support for cygwin. 4221 sources += [ 4222 "src/base/debug/stack_trace_win.cc", 4223 "src/base/platform/platform-win32.cc", 4224 "src/base/win32-headers.h", 4225 ] 4226 4227 defines += [ "_CRT_RAND_S" ] # for rand_s() 4228 4229 libs = [ 4230 "dbghelp.lib", 4231 "winmm.lib", 4232 "ws2_32.lib", 4233 ] 4234 4235 data_deps += [ "//build/win:runtime_libs" ] 4236 } 4237 4238 if (v8_current_cpu == "mips" || v8_current_cpu == "mips64") { 4239 # Add runtime libs for mips. 4240 data += [ 4241 "tools/mips_toolchain/sysroot/usr/lib/", 4242 "tools/mips_toolchain/mips-mti-linux-gnu/lib", 4243 ] 4244 } 4245 4246 if (is_ubsan && (v8_current_cpu == "x86" || v8_current_cpu == "arm" || 4247 v8_current_cpu == "mips")) { 4248 # Special UBSan 32-bit requirement. 4249 sources += [ "src/base/ubsan.cc" ] 4250 } 4251 4252 if (is_tsan && !build_with_chromium) { 4253 data += [ "tools/sanitizers/tsan_suppressions.txt" ] 4254 } 4255 4256 # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris. 4257} 4258 4259v8_component("v8_libplatform") { 4260 sources = [ 4261 "//base/trace_event/common/trace_event_common.h", 4262 "include/libplatform/libplatform-export.h", 4263 "include/libplatform/libplatform.h", 4264 "include/libplatform/v8-tracing.h", 4265 "src/libplatform/default-foreground-task-runner.cc", 4266 "src/libplatform/default-foreground-task-runner.h", 4267 "src/libplatform/default-job.cc", 4268 "src/libplatform/default-job.h", 4269 "src/libplatform/default-platform.cc", 4270 "src/libplatform/default-platform.h", 4271 "src/libplatform/default-worker-threads-task-runner.cc", 4272 "src/libplatform/default-worker-threads-task-runner.h", 4273 "src/libplatform/delayed-task-queue.cc", 4274 "src/libplatform/delayed-task-queue.h", 4275 "src/libplatform/task-queue.cc", 4276 "src/libplatform/task-queue.h", 4277 "src/libplatform/tracing/trace-buffer.cc", 4278 "src/libplatform/tracing/trace-buffer.h", 4279 "src/libplatform/tracing/trace-config.cc", 4280 "src/libplatform/tracing/trace-object.cc", 4281 "src/libplatform/tracing/trace-writer.cc", 4282 "src/libplatform/tracing/trace-writer.h", 4283 "src/libplatform/tracing/tracing-controller.cc", 4284 "src/libplatform/worker-thread.cc", 4285 "src/libplatform/worker-thread.h", 4286 ] 4287 4288 configs = [ ":internal_config_base" ] 4289 4290 if (is_component_build) { 4291 defines = [ "BUILDING_V8_PLATFORM_SHARED" ] 4292 } 4293 4294 public_configs = [ ":libplatform_config" ] 4295 4296 deps = [ 4297 ":v8_headers", 4298 ":v8_libbase", 4299 ":v8_tracing", 4300 ] 4301 4302 if (v8_use_perfetto) { 4303 sources -= [ 4304 "//base/trace_event/common/trace_event_common.h", 4305 "src/libplatform/tracing/trace-buffer.cc", 4306 "src/libplatform/tracing/trace-buffer.h", 4307 "src/libplatform/tracing/trace-object.cc", 4308 "src/libplatform/tracing/trace-writer.cc", 4309 "src/libplatform/tracing/trace-writer.h", 4310 ] 4311 sources += [ 4312 "src/libplatform/tracing/trace-event-listener.cc", 4313 "src/libplatform/tracing/trace-event-listener.h", 4314 ] 4315 deps += [ 4316 # TODO(skyostil): Switch TraceEventListener to protozero. 4317 "//third_party/perfetto/protos/perfetto/trace:lite", 4318 ] 4319 } 4320} 4321 4322v8_source_set("v8_libsampler") { 4323 sources = [ 4324 "src/libsampler/sampler.cc", 4325 "src/libsampler/sampler.h", 4326 ] 4327 4328 configs = [ ":internal_config" ] 4329 4330 public_configs = [ ":libsampler_config" ] 4331 4332 deps = [ ":v8_libbase" ] 4333} 4334 4335v8_source_set("fuzzer_support") { 4336 visibility = [ ":*" ] # Only targets in this file can depend on this. 4337 4338 sources = [ 4339 "test/fuzzer/fuzzer-support.cc", 4340 "test/fuzzer/fuzzer-support.h", 4341 ] 4342 4343 configs = [ ":internal_config_base" ] 4344 4345 public_deps = [ 4346 ":v8", 4347 ":v8_libbase", 4348 ":v8_libplatform", 4349 ":v8_maybe_icu", 4350 ] 4351} 4352 4353v8_source_set("v8_cppgc_shared") { 4354 sources = [ 4355 "src/heap/base/stack.cc", 4356 "src/heap/base/stack.h", 4357 "src/heap/base/worklist.cc", 4358 "src/heap/base/worklist.h", 4359 ] 4360 4361 if (is_clang || !is_win) { 4362 if (current_cpu == "x64") { 4363 sources += [ "src/heap/base/asm/x64/push_registers_asm.cc" ] 4364 } else if (current_cpu == "x86") { 4365 sources += [ "src/heap/base/asm/ia32/push_registers_asm.cc" ] 4366 } else if (current_cpu == "arm") { 4367 sources += [ "src/heap/base/asm/arm/push_registers_asm.cc" ] 4368 } else if (current_cpu == "arm64") { 4369 sources += [ "src/heap/base/asm/arm64/push_registers_asm.cc" ] 4370 } else if (current_cpu == "ppc64") { 4371 sources += [ "src/heap/base/asm/ppc/push_registers_asm.cc" ] 4372 } else if (current_cpu == "s390x") { 4373 sources += [ "src/heap/base/asm/s390/push_registers_asm.cc" ] 4374 } else if (current_cpu == "mipsel") { 4375 sources += [ "src/heap/base/asm/mips/push_registers_asm.cc" ] 4376 } else if (current_cpu == "mips64el") { 4377 sources += [ "src/heap/base/asm/mips64/push_registers_asm.cc" ] 4378 } 4379 } else if (is_win) { 4380 if (current_cpu == "x64") { 4381 sources += [ "src/heap/base/asm/x64/push_registers_masm.S" ] 4382 } else if (current_cpu == "x86") { 4383 sources += [ "src/heap/base/asm/ia32/push_registers_masm.S" ] 4384 } else if (current_cpu == "arm64") { 4385 sources += [ "src/heap/base/asm/arm64/push_registers_masm.S" ] 4386 } 4387 } 4388 4389 configs = [ ":internal_config" ] 4390 4391 public_deps = [ ":v8_libbase" ] 4392} 4393 4394v8_source_set("cppgc_base") { 4395 visibility = [ ":*" ] 4396 4397 sources = [ 4398 "include/cppgc/allocation.h", 4399 "include/cppgc/common.h", 4400 "include/cppgc/custom-space.h", 4401 "include/cppgc/default-platform.h", 4402 "include/cppgc/ephemeron-pair.h", 4403 "include/cppgc/garbage-collected.h", 4404 "include/cppgc/heap.h", 4405 "include/cppgc/internal/api-constants.h", 4406 "include/cppgc/internal/atomic-entry-flag.h", 4407 "include/cppgc/internal/compiler-specific.h", 4408 "include/cppgc/internal/finalizer-trait.h", 4409 "include/cppgc/internal/gc-info.h", 4410 "include/cppgc/internal/name-trait.h", 4411 "include/cppgc/internal/persistent-node.h", 4412 "include/cppgc/internal/pointer-policies.h", 4413 "include/cppgc/internal/prefinalizer-handler.h", 4414 "include/cppgc/internal/process-heap.h", 4415 "include/cppgc/internal/write-barrier.h", 4416 "include/cppgc/liveness-broker.h", 4417 "include/cppgc/macros.h", 4418 "include/cppgc/member.h", 4419 "include/cppgc/name-provider.h", 4420 "include/cppgc/persistent.h", 4421 "include/cppgc/platform.h", 4422 "include/cppgc/prefinalizer.h", 4423 "include/cppgc/source-location.h", 4424 "include/cppgc/trace-trait.h", 4425 "include/cppgc/type-traits.h", 4426 "include/cppgc/visitor.h", 4427 "include/v8config.h", 4428 "src/heap/cppgc/allocation.cc", 4429 "src/heap/cppgc/compaction-worklists.cc", 4430 "src/heap/cppgc/compaction-worklists.h", 4431 "src/heap/cppgc/compactor.cc", 4432 "src/heap/cppgc/compactor.h", 4433 "src/heap/cppgc/concurrent-marker.cc", 4434 "src/heap/cppgc/concurrent-marker.h", 4435 "src/heap/cppgc/free-list.cc", 4436 "src/heap/cppgc/free-list.h", 4437 "src/heap/cppgc/garbage-collector.h", 4438 "src/heap/cppgc/gc-info-table.cc", 4439 "src/heap/cppgc/gc-info-table.h", 4440 "src/heap/cppgc/gc-info.cc", 4441 "src/heap/cppgc/gc-invoker.cc", 4442 "src/heap/cppgc/gc-invoker.h", 4443 "src/heap/cppgc/heap-base.cc", 4444 "src/heap/cppgc/heap-base.h", 4445 "src/heap/cppgc/heap-growing.cc", 4446 "src/heap/cppgc/heap-growing.h", 4447 "src/heap/cppgc/heap-object-header.cc", 4448 "src/heap/cppgc/heap-object-header.h", 4449 "src/heap/cppgc/heap-page.cc", 4450 "src/heap/cppgc/heap-page.h", 4451 "src/heap/cppgc/heap-space.cc", 4452 "src/heap/cppgc/heap-space.h", 4453 "src/heap/cppgc/heap-visitor.h", 4454 "src/heap/cppgc/heap.cc", 4455 "src/heap/cppgc/heap.h", 4456 "src/heap/cppgc/incremental-marking-schedule.cc", 4457 "src/heap/cppgc/incremental-marking-schedule.h", 4458 "src/heap/cppgc/liveness-broker.cc", 4459 "src/heap/cppgc/liveness-broker.h", 4460 "src/heap/cppgc/logging.cc", 4461 "src/heap/cppgc/marker.cc", 4462 "src/heap/cppgc/marker.h", 4463 "src/heap/cppgc/marking-state.cc", 4464 "src/heap/cppgc/marking-state.h", 4465 "src/heap/cppgc/marking-verifier.cc", 4466 "src/heap/cppgc/marking-verifier.h", 4467 "src/heap/cppgc/marking-visitor.cc", 4468 "src/heap/cppgc/marking-visitor.h", 4469 "src/heap/cppgc/marking-worklists.cc", 4470 "src/heap/cppgc/marking-worklists.h", 4471 "src/heap/cppgc/name-trait.cc", 4472 "src/heap/cppgc/object-allocator.cc", 4473 "src/heap/cppgc/object-allocator.h", 4474 "src/heap/cppgc/object-start-bitmap.h", 4475 "src/heap/cppgc/page-memory.cc", 4476 "src/heap/cppgc/page-memory.h", 4477 "src/heap/cppgc/persistent-node.cc", 4478 "src/heap/cppgc/platform.cc", 4479 "src/heap/cppgc/pointer-policies.cc", 4480 "src/heap/cppgc/prefinalizer-handler.cc", 4481 "src/heap/cppgc/prefinalizer-handler.h", 4482 "src/heap/cppgc/process-heap.cc", 4483 "src/heap/cppgc/process-heap.h", 4484 "src/heap/cppgc/raw-heap.cc", 4485 "src/heap/cppgc/raw-heap.h", 4486 "src/heap/cppgc/sanitizers.h", 4487 "src/heap/cppgc/source-location.cc", 4488 "src/heap/cppgc/stats-collector.cc", 4489 "src/heap/cppgc/stats-collector.h", 4490 "src/heap/cppgc/sweeper.cc", 4491 "src/heap/cppgc/sweeper.h", 4492 "src/heap/cppgc/task-handle.h", 4493 "src/heap/cppgc/trace-trait.cc", 4494 "src/heap/cppgc/virtual-memory.cc", 4495 "src/heap/cppgc/virtual-memory.h", 4496 "src/heap/cppgc/visitor.cc", 4497 "src/heap/cppgc/write-barrier.cc", 4498 ] 4499 4500 if (cppgc_enable_caged_heap) { 4501 sources += [ 4502 "include/cppgc/internal/caged-heap-local-data.h", 4503 "src/heap/cppgc/caged-heap-local-data.cc", 4504 "src/heap/cppgc/caged-heap.cc", 4505 "src/heap/cppgc/caged-heap.h", 4506 ] 4507 } 4508 4509 configs = [ 4510 ":internal_config", 4511 ":cppgc_base_config", 4512 ] 4513 4514 public_deps = [ 4515 ":v8_cppgc_shared", 4516 ":v8_libbase", 4517 ":v8_libplatform", 4518 ] 4519} 4520 4521############################################################################### 4522# Produce a single static library for embedders 4523# 4524 4525if (v8_monolithic) { 4526 # A component build is not monolithic. 4527 assert(!is_component_build) 4528 4529 # Using external startup data would produce separate files. 4530 assert(!v8_use_external_startup_data) 4531 v8_static_library("v8_monolith") { 4532 deps = [ 4533 ":v8", 4534 ":v8_libbase", 4535 ":v8_libplatform", 4536 ":v8_libsampler", 4537 "//build/win:default_exe_manifest", 4538 ] 4539 4540 configs = [ ":internal_config" ] 4541 } 4542} 4543 4544v8_static_library("wee8") { 4545 deps = [ 4546 ":v8_base", 4547 ":v8_libbase", 4548 ":v8_libplatform", 4549 ":v8_libsampler", 4550 ":v8_snapshot", 4551 "//build/win:default_exe_manifest", 4552 ] 4553 4554 # TODO: v8dll-main.cc equivalent for shared library builds 4555 4556 configs = [ ":internal_config" ] 4557 4558 sources = [ 4559 ### gcmole(all) ### 4560 "src/wasm/c-api.cc", 4561 "src/wasm/c-api.h", 4562 "third_party/wasm-api/wasm.h", 4563 "third_party/wasm-api/wasm.hh", 4564 ] 4565} 4566 4567############################################################################### 4568# Executables 4569# 4570 4571if (current_toolchain == v8_generator_toolchain) { 4572 v8_executable("bytecode_builtins_list_generator") { 4573 visibility = [ ":*" ] # Only targets in this file can depend on this. 4574 4575 include_dirs = [ "." ] 4576 4577 sources = [ 4578 "src/builtins/generate-bytecodes-builtins-list.cc", 4579 "src/interpreter/bytecode-operands.cc", 4580 "src/interpreter/bytecode-operands.h", 4581 "src/interpreter/bytecodes.cc", 4582 "src/interpreter/bytecodes.h", 4583 ] 4584 libs = ["execinfo"] 4585 4586 configs = [ ":internal_config" ] 4587 4588 deps = [ 4589 ":v8_libbase", 4590 "//build/win:default_exe_manifest", 4591 ] 4592 } 4593} 4594 4595if (current_toolchain == v8_snapshot_toolchain) { 4596 v8_executable("mksnapshot") { 4597 visibility = [ ":*" ] # Only targets in this file can depend on this. 4598 4599 sources = [ 4600 "src/snapshot/embedded/embedded-empty.cc", 4601 "src/snapshot/embedded/embedded-file-writer.cc", 4602 "src/snapshot/embedded/embedded-file-writer.h", 4603 "src/snapshot/embedded/platform-embedded-file-writer-aix.cc", 4604 "src/snapshot/embedded/platform-embedded-file-writer-aix.h", 4605 "src/snapshot/embedded/platform-embedded-file-writer-base.cc", 4606 "src/snapshot/embedded/platform-embedded-file-writer-base.h", 4607 "src/snapshot/embedded/platform-embedded-file-writer-generic.cc", 4608 "src/snapshot/embedded/platform-embedded-file-writer-generic.h", 4609 "src/snapshot/embedded/platform-embedded-file-writer-mac.cc", 4610 "src/snapshot/embedded/platform-embedded-file-writer-mac.h", 4611 "src/snapshot/embedded/platform-embedded-file-writer-win.cc", 4612 "src/snapshot/embedded/platform-embedded-file-writer-win.h", 4613 "src/snapshot/mksnapshot.cc", 4614 "src/snapshot/snapshot-empty.cc", 4615 ] 4616 4617 if (v8_control_flow_integrity) { 4618 sources += [ "src/deoptimizer/deoptimizer-cfi-empty.cc" ] 4619 } 4620 4621 configs = [ ":internal_config" ] 4622 4623 deps = [ 4624 ":v8_base_without_compiler", 4625 ":v8_compiler_for_mksnapshot", 4626 ":v8_init", 4627 ":v8_libbase", 4628 ":v8_libplatform", 4629 ":v8_maybe_icu", 4630 ":v8_tracing", 4631 "//build/win:default_exe_manifest", 4632 ] 4633 } 4634} 4635 4636if (current_toolchain == v8_snapshot_toolchain) { 4637 v8_executable("torque") { 4638 visibility = [ ":*" ] # Only targets in this file can depend on this. 4639 4640 sources = [ "src/torque/torque.cc" ] 4641 4642 deps = [ 4643 ":torque_base", 4644 "//build/win:default_exe_manifest", 4645 ] 4646 4647 # The use of exceptions for Torque in violation of the Chromium style-guide 4648 # is justified by the fact that it is only used from the non-essential 4649 # language server and can be removed anytime if it causes problems. 4650 configs = [ 4651 ":internal_config", 4652 "//build/config/compiler:exceptions", 4653 "//build/config/compiler:rtti", 4654 ] 4655 4656 remove_configs = [ 4657 "//build/config/compiler:no_exceptions", 4658 "//build/config/compiler:no_rtti", 4659 ] 4660 4661 if (is_win && is_asan) { 4662 remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ] 4663 } 4664 } 4665} 4666 4667v8_executable("torque-language-server") { 4668 visibility = [ ":*" ] # Only targets in this file can depend on this. 4669 4670 sources = [ "src/torque/ls/torque-language-server.cc" ] 4671 4672 deps = [ 4673 ":torque_base", 4674 ":torque_ls_base", 4675 "//build/win:default_exe_manifest", 4676 ] 4677 4678 # The use of exceptions for Torque in violation of the Chromium style-guide 4679 # is justified by the fact that it is only used from the non-essential 4680 # language server and can be removed anytime if it causes problems. 4681 configs = [ 4682 ":internal_config", 4683 "//build/config/compiler:exceptions", 4684 "//build/config/compiler:rtti", 4685 ] 4686 4687 remove_configs = [ 4688 "//build/config/compiler:no_exceptions", 4689 "//build/config/compiler:no_rtti", 4690 ] 4691 4692 if (is_win && is_asan) { 4693 remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ] 4694 } 4695} 4696 4697if (v8_enable_i18n_support) { 4698 if (current_toolchain == v8_generator_toolchain) { 4699 v8_executable("gen-regexp-special-case") { 4700 visibility = [ ":*" ] # Only targets in this file can depend on this. 4701 4702 sources = [ "src/regexp/gen-regexp-special-case.cc" ] 4703 4704 deps = [ 4705 ":v8_libbase", 4706 "//build/win:default_exe_manifest", 4707 "//third_party/icu", 4708 ] 4709 4710 configs = [ ":internal_config" ] 4711 } 4712 } 4713 4714 action("run_gen-regexp-special-case") { 4715 visibility = [ ":*" ] # Only targets in this file can depend on this. 4716 4717 script = "tools/run.py" 4718 4719 deps = [ ":gen-regexp-special-case($v8_generator_toolchain)" ] 4720 4721 output_file = "$target_gen_dir/src/regexp/special-case.cc" 4722 4723 outputs = [ output_file ] 4724 4725 args = [ 4726 "./" + rebase_path( 4727 get_label_info( 4728 ":gen-regexp-special-case($v8_generator_toolchain)", 4729 "root_out_dir") + "/gen-regexp-special-case", 4730 root_build_dir), 4731 rebase_path(output_file, root_build_dir), 4732 ] 4733 } 4734} 4735 4736############################################################################### 4737# Public targets 4738# 4739 4740want_v8_shell = 4741 (current_toolchain == host_toolchain && v8_toolset_for_shell == "host") || 4742 (current_toolchain == v8_snapshot_toolchain && 4743 v8_toolset_for_shell == "host") || 4744 (current_toolchain != host_toolchain && v8_toolset_for_shell == "target") 4745 4746group("gn_all") { 4747 testonly = true 4748 4749 deps = [ 4750 ":d8", 4751 ":v8_fuzzers", 4752 ":v8_hello_world", 4753 ":v8_sample_process", 4754 "test:gn_all", 4755 "tools:gn_all", 4756 ] 4757 4758 if (v8_custom_deps != "") { 4759 # Custom dependency from directory under v8/custom_deps. 4760 deps += [ v8_custom_deps ] 4761 } 4762 4763 if (want_v8_shell) { 4764 deps += [ ":v8_shell" ] 4765 } 4766} 4767 4768group("v8_python_base") { 4769 data = [ ".vpython" ] 4770} 4771 4772group("v8_clusterfuzz") { 4773 testonly = true 4774 4775 deps = [ ":d8" ] 4776 4777 if (v8_multi_arch_build) { 4778 deps += [ 4779 ":d8(//build/toolchain/linux:clang_x64)", 4780 ":d8(//build/toolchain/linux:clang_x64_v8_arm64)", 4781 ":d8(//build/toolchain/linux:clang_x86)", 4782 ":d8(//build/toolchain/linux:clang_x86_v8_arm)", 4783 ":d8(tools/clusterfuzz/toolchain:clang_x64_pointer_compression)", 4784 ] 4785 } 4786} 4787 4788group("v8_archive") { 4789 testonly = true 4790 4791 deps = [ ":d8" ] 4792 4793 if (!is_win) { 4794 # On windows, cctest doesn't link with v8_static_library. 4795 deps += [ "test/cctest:cctest" ] 4796 } 4797} 4798 4799# TODO(dglazkov): Remove the "!build_with_chromium" condition once this clause 4800# is removed from Chromium. 4801if (is_fuchsia && !build_with_chromium) { 4802 import("//build/config/fuchsia/rules.gni") 4803 4804 cr_fuchsia_package("d8_fuchsia_pkg") { 4805 testonly = true 4806 binary = ":d8" 4807 package_name_override = "d8" 4808 } 4809 4810 fuchsia_package_runner("d8_fuchsia") { 4811 testonly = true 4812 package = ":d8_fuchsia_pkg" 4813 package_name_override = "d8" 4814 } 4815} 4816 4817group("v8_fuzzers") { 4818 testonly = true 4819 data_deps = [ 4820 ":v8_simple_inspector_fuzzer", 4821 ":v8_simple_json_fuzzer", 4822 ":v8_simple_multi_return_fuzzer", 4823 ":v8_simple_parser_fuzzer", 4824 ":v8_simple_regexp_builtins_fuzzer", 4825 ":v8_simple_regexp_fuzzer", 4826 ":v8_simple_wasm_async_fuzzer", 4827 ":v8_simple_wasm_code_fuzzer", 4828 ":v8_simple_wasm_compile_fuzzer", 4829 ":v8_simple_wasm_fuzzer", 4830 ] 4831} 4832 4833if (is_component_build) { 4834 v8_component("v8") { 4835 sources = [ "src/utils/v8dll-main.cc" ] 4836 4837 public_deps = [ 4838 ":v8_base", 4839 ":v8_snapshot", 4840 ] 4841 4842 configs = [ ":internal_config" ] 4843 4844 public_configs = [ ":external_config" ] 4845 } 4846 4847 v8_component("v8_for_testing") { 4848 testonly = true 4849 4850 sources = [ "src/utils/v8dll-main.cc" ] 4851 4852 public_deps = [ 4853 ":torque_base", 4854 ":torque_ls_base", 4855 ":v8_base", 4856 ":v8_headers", 4857 ":v8_initializers", 4858 ":v8_snapshot", 4859 ] 4860 4861 configs = [ ":internal_config" ] 4862 4863 public_configs = [ ":external_config" ] 4864 } 4865 4866 v8_component("cppgc") { 4867 public_deps = [ ":cppgc_base" ] 4868 4869 configs = [ ":internal_config" ] 4870 4871 public_configs = [ ":external_config" ] 4872 } 4873 4874 v8_component("cppgc_for_testing") { 4875 testonly = true 4876 4877 public_deps = [ ":cppgc_base" ] 4878 4879 configs = [ ":internal_config" ] 4880 public_configs = [ ":external_config" ] 4881 } 4882 4883 v8_component("v8_cppgc_shared_for_testing") { 4884 testonly = true 4885 4886 public_deps = [ ":v8_cppgc_shared" ] 4887 4888 configs = [ ":internal_config" ] 4889 public_configs = [ ":external_config" ] 4890 } 4891} else { 4892 group("v8") { 4893 public_deps = [ 4894 ":v8_base", 4895 ":v8_snapshot", 4896 ] 4897 4898 public_configs = [ ":external_config" ] 4899 } 4900 4901 group("v8_for_testing") { 4902 testonly = true 4903 4904 public_deps = [ 4905 ":torque_base", 4906 ":torque_ls_base", 4907 ":v8_base", 4908 ":v8_initializers", 4909 ":v8_snapshot", 4910 ] 4911 4912 public_configs = [ ":external_config" ] 4913 } 4914 4915 group("cppgc") { 4916 public_deps = [ ":cppgc_base" ] 4917 4918 public_configs = [ ":external_config" ] 4919 } 4920 4921 group("cppgc_for_testing") { 4922 testonly = true 4923 4924 public_deps = [ ":cppgc_base" ] 4925 4926 public_configs = [ ":external_config" ] 4927 } 4928 4929 group("v8_cppgc_shared_for_testing") { 4930 testonly = true 4931 4932 public_deps = [ ":v8_cppgc_shared" ] 4933 4934 public_configs = [ ":external_config" ] 4935 } 4936} 4937 4938v8_executable("d8") { 4939 sources = [ 4940 "src/d8/async-hooks-wrapper.cc", 4941 "src/d8/async-hooks-wrapper.h", 4942 "src/d8/d8-console.cc", 4943 "src/d8/d8-console.h", 4944 "src/d8/d8-js.cc", 4945 "src/d8/d8-platforms.cc", 4946 "src/d8/d8-platforms.h", 4947 "src/d8/d8.cc", 4948 "src/d8/d8.h", 4949 ] 4950 4951 if (v8_fuzzilli) { 4952 sources += [ 4953 "src/d8/cov.cc", 4954 "src/d8/cov.h", 4955 ] 4956 } 4957 4958 configs = [ 4959 # Note: don't use :internal_config here because this target will get 4960 # the :external_config applied to it by virtue of depending on :v8, and 4961 # you can't have both applied to the same target. 4962 ":internal_config_base", 4963 ":v8_tracing_config", 4964 ] 4965 4966 deps = [ 4967 ":v8", 4968 ":v8_libbase", 4969 ":v8_libplatform", 4970 ":v8_tracing", 4971 "//build/win:default_exe_manifest", 4972 ] 4973 4974 if (is_posix || is_fuchsia) { 4975 sources += [ "src/d8/d8-posix.cc" ] 4976 } else if (is_win) { 4977 sources += [ "src/d8/d8-windows.cc" ] 4978 } 4979 4980 if (v8_correctness_fuzzer) { 4981 deps += [ "tools/clusterfuzz:v8_correctness_fuzzer_resources" ] 4982 } 4983 4984 defines = [] 4985 4986 if (v8_enable_vtunejit) { 4987 deps += [ "src/third_party/vtune:v8_vtune" ] 4988 } 4989} 4990 4991v8_executable("v8_hello_world") { 4992 sources = [ "samples/hello-world.cc" ] 4993 4994 configs = [ 4995 # Note: don't use :internal_config here because this target will get 4996 # the :external_config applied to it by virtue of depending on :v8, and 4997 # you can't have both applied to the same target. 4998 ":internal_config_base", 4999 ] 5000 5001 deps = [ 5002 ":v8", 5003 ":v8_libbase", 5004 ":v8_libplatform", 5005 "//build/win:default_exe_manifest", 5006 ] 5007} 5008 5009v8_executable("v8_sample_process") { 5010 sources = [ "samples/process.cc" ] 5011 5012 configs = [ 5013 # Note: don't use :internal_config here because this target will get 5014 # the :external_config applied to it by virtue of depending on :v8, and 5015 # you can't have both applied to the same target. 5016 ":internal_config_base", 5017 ] 5018 5019 deps = [ 5020 ":v8", 5021 ":v8_libbase", 5022 ":v8_libplatform", 5023 "//build/win:default_exe_manifest", 5024 ] 5025} 5026 5027if (want_v8_shell) { 5028 v8_executable("v8_shell") { 5029 sources = [ "samples/shell.cc" ] 5030 5031 configs = [ 5032 # Note: don't use :internal_config here because this target will get 5033 # the :external_config applied to it by virtue of depending on :v8, and 5034 # you can't have both applied to the same target. 5035 ":internal_config_base", 5036 ] 5037 5038 deps = [ 5039 ":v8", 5040 ":v8_libbase", 5041 ":v8_libplatform", 5042 "//build/win:default_exe_manifest", 5043 ] 5044 } 5045} 5046 5047v8_executable("cppgc_for_v8_embedders") { 5048 sources = [ "samples/cppgc/cppgc-for-v8-embedders.cc" ] 5049 5050 configs = [ 5051 # Note: don't use :internal_config here because this target will get 5052 # the :external_config applied to it by virtue of depending on :cppgc, and 5053 # you can't have both applied to the same target. 5054 ":internal_config_base", 5055 ] 5056 5057 deps = [ 5058 ":cppgc", 5059 ":v8_libplatform", 5060 "//build/win:default_exe_manifest", 5061 ] 5062} 5063 5064v8_executable("cppgc_standalone") { 5065 sources = [ "samples/cppgc/cppgc-standalone.cc" ] 5066 5067 configs = [ 5068 # Note: don't use :internal_config here because this target will get 5069 # the :external_config applied to it by virtue of depending on :cppgc, and 5070 # you can't have both applied to the same target. 5071 ":internal_config_base", 5072 ] 5073 5074 deps = [ ":cppgc" ] 5075} 5076 5077template("v8_fuzzer") { 5078 name = target_name 5079 forward_variables_from(invoker, "*") 5080 v8_executable("v8_simple_" + name) { 5081 deps = [ 5082 ":" + name, 5083 "//build/win:default_exe_manifest", 5084 ] 5085 5086 sources = [ "test/fuzzer/fuzzer.cc" ] 5087 5088 configs = [ ":external_config" ] 5089 } 5090} 5091 5092v8_source_set("json_fuzzer") { 5093 sources = [ "test/fuzzer/json.cc" ] 5094 5095 deps = [ ":fuzzer_support" ] 5096 5097 configs = [ 5098 ":external_config", 5099 ":internal_config_base", 5100 ] 5101} 5102 5103v8_fuzzer("json_fuzzer") { 5104} 5105 5106v8_source_set("multi_return_fuzzer") { 5107 sources = [ "test/fuzzer/multi-return.cc" ] 5108 5109 deps = [ ":fuzzer_support" ] 5110 5111 configs = [ 5112 ":external_config", 5113 ":internal_config_base", 5114 ] 5115} 5116 5117v8_fuzzer("multi_return_fuzzer") { 5118} 5119 5120v8_source_set("parser_fuzzer") { 5121 sources = [ "test/fuzzer/parser.cc" ] 5122 5123 deps = [ ":fuzzer_support" ] 5124 5125 configs = [ 5126 ":external_config", 5127 ":internal_config_base", 5128 ] 5129} 5130 5131v8_fuzzer("parser_fuzzer") { 5132} 5133 5134v8_source_set("regexp_builtins_fuzzer") { 5135 sources = [ 5136 "test/fuzzer/regexp-builtins.cc", 5137 "test/fuzzer/regexp_builtins/mjsunit.js.h", 5138 ] 5139 5140 deps = [ ":fuzzer_support" ] 5141 5142 configs = [ 5143 ":external_config", 5144 ":internal_config_base", 5145 ] 5146} 5147 5148v8_fuzzer("regexp_builtins_fuzzer") { 5149} 5150 5151v8_source_set("regexp_fuzzer") { 5152 sources = [ "test/fuzzer/regexp.cc" ] 5153 5154 deps = [ ":fuzzer_support" ] 5155 5156 configs = [ 5157 ":external_config", 5158 ":internal_config_base", 5159 ] 5160} 5161 5162v8_fuzzer("regexp_fuzzer") { 5163} 5164 5165v8_source_set("wasm_test_common") { 5166 sources = [ 5167 "test/common/wasm/wasm-interpreter.cc", 5168 "test/common/wasm/wasm-interpreter.h", 5169 "test/common/wasm/wasm-module-runner.cc", 5170 "test/common/wasm/wasm-module-runner.h", 5171 ] 5172 5173 deps = [ 5174 ":generate_bytecode_builtins_list", 5175 ":run_torque", 5176 ":v8_tracing", 5177 ] 5178 5179 public_deps = [ ":v8_maybe_icu" ] 5180 5181 configs = [ 5182 ":external_config", 5183 ":internal_config_base", 5184 ] 5185} 5186 5187v8_source_set("wasm_fuzzer") { 5188 sources = [ "test/fuzzer/wasm.cc" ] 5189 5190 deps = [ 5191 ":fuzzer_support", 5192 ":lib_wasm_fuzzer_common", 5193 ":wasm_test_common", 5194 ] 5195 5196 configs = [ 5197 ":external_config", 5198 ":internal_config_base", 5199 ] 5200} 5201 5202v8_fuzzer("wasm_fuzzer") { 5203} 5204 5205v8_source_set("wasm_async_fuzzer") { 5206 sources = [ "test/fuzzer/wasm-async.cc" ] 5207 5208 deps = [ 5209 ":fuzzer_support", 5210 ":lib_wasm_fuzzer_common", 5211 ":wasm_test_common", 5212 ] 5213 5214 configs = [ 5215 ":external_config", 5216 ":internal_config_base", 5217 ] 5218} 5219 5220v8_fuzzer("wasm_async_fuzzer") { 5221} 5222 5223v8_source_set("wasm_code_fuzzer") { 5224 sources = [ 5225 "test/common/wasm/test-signatures.h", 5226 "test/fuzzer/wasm-code.cc", 5227 ] 5228 5229 deps = [ 5230 ":fuzzer_support", 5231 ":lib_wasm_fuzzer_common", 5232 ":wasm_test_common", 5233 ] 5234 5235 configs = [ 5236 ":external_config", 5237 ":internal_config_base", 5238 ] 5239} 5240 5241v8_fuzzer("wasm_code_fuzzer") { 5242} 5243 5244v8_source_set("lib_wasm_fuzzer_common") { 5245 sources = [ 5246 "test/fuzzer/wasm-fuzzer-common.cc", 5247 "test/fuzzer/wasm-fuzzer-common.h", 5248 ] 5249 5250 deps = [ 5251 ":generate_bytecode_builtins_list", 5252 ":run_torque", 5253 ":v8_tracing", 5254 ] 5255 5256 public_deps = [ ":v8_maybe_icu" ] 5257 5258 configs = [ 5259 ":external_config", 5260 ":internal_config_base", 5261 ] 5262} 5263 5264v8_source_set("wasm_compile_fuzzer") { 5265 sources = [ 5266 "test/common/wasm/test-signatures.h", 5267 "test/fuzzer/wasm-compile.cc", 5268 ] 5269 5270 deps = [ 5271 ":fuzzer_support", 5272 ":lib_wasm_fuzzer_common", 5273 ":wasm_test_common", 5274 ] 5275 5276 configs = [ 5277 ":external_config", 5278 ":internal_config_base", 5279 ] 5280} 5281 5282v8_fuzzer("wasm_compile_fuzzer") { 5283} 5284 5285v8_source_set("inspector_fuzzer") { 5286 sources = [ "test/fuzzer/inspector-fuzzer.cc" ] 5287 5288 deps = [ 5289 ":fuzzer_support", 5290 "test/inspector:inspector_test", 5291 ] 5292 5293 configs = [ 5294 ":external_config", 5295 ":internal_config_base", 5296 ] 5297} 5298 5299v8_fuzzer("inspector_fuzzer") { 5300} 5301 5302# Target to build all generated .cc files. 5303group("v8_generated_cc_files") { 5304 testonly = true 5305 5306 deps = [ 5307 ":generate_bytecode_builtins_list", 5308 ":run_torque", 5309 "src/inspector:v8_generated_cc_files", 5310 ] 5311} 5312 5313# Protobuf targets, used only when building outside of chromium. 5314 5315if (!build_with_chromium && v8_use_perfetto) { 5316 # This config is applied to the autogenerated .pb.{cc,h} files in 5317 # proto_library.gni. This config is propagated up to the source sets 5318 # that depend on generated proto headers. 5319 config("protobuf_gen_config") { 5320 defines = [ 5321 "GOOGLE_PROTOBUF_NO_RTTI", 5322 "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER", 5323 ] 5324 cflags = [ 5325 "-Wno-unknown-warning-option", 5326 "-Wno-deprecated", 5327 "-Wno-undef", 5328 "-Wno-zero-as-null-pointer-constant", 5329 "-Wno-thread-safety-attributes", 5330 ] 5331 include_dirs = [ "third_party/protobuf/src" ] 5332 } 5333 5334 # Configuration used to build libprotobuf_* and the protoc compiler. 5335 config("protobuf_config") { 5336 # Apply the lighter supressions and macro definitions from above. 5337 configs = [ ":protobuf_gen_config" ] 5338 5339 if (!is_win) { 5340 defines = [ "HAVE_PTHREAD=1" ] 5341 } 5342 if (is_clang) { 5343 cflags = [ 5344 "-Wno-unused-private-field", 5345 "-Wno-unused-function", 5346 "-Wno-inconsistent-missing-override", 5347 "-Wno-unknown-warning-option", 5348 "-Wno-enum-compare-switch", 5349 "-Wno-user-defined-warnings", 5350 "-Wno-tautological-constant-compare", 5351 ] 5352 } 5353 if (is_win && is_clang) { 5354 cflags += [ "-Wno-microsoft-unqualified-friend" ] 5355 } 5356 } 5357 5358 source_set("protobuf_lite") { 5359 sources = [ 5360 "third_party/protobuf/src/google/protobuf/any_lite.cc", 5361 "third_party/protobuf/src/google/protobuf/arena.cc", 5362 "third_party/protobuf/src/google/protobuf/extension_set.cc", 5363 "third_party/protobuf/src/google/protobuf/generated_message_table_driven_lite.cc", 5364 "third_party/protobuf/src/google/protobuf/generated_message_util.cc", 5365 "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc", 5366 "third_party/protobuf/src/google/protobuf/io/coded_stream.cc", 5367 "third_party/protobuf/src/google/protobuf/io/strtod.cc", 5368 "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc", 5369 "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc", 5370 "third_party/protobuf/src/google/protobuf/message_lite.cc", 5371 "third_party/protobuf/src/google/protobuf/repeated_field.cc", 5372 "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc", 5373 "third_party/protobuf/src/google/protobuf/stubs/common.cc", 5374 "third_party/protobuf/src/google/protobuf/stubs/int128.cc", 5375 "third_party/protobuf/src/google/protobuf/stubs/io_win32.cc", 5376 "third_party/protobuf/src/google/protobuf/stubs/status.cc", 5377 "third_party/protobuf/src/google/protobuf/stubs/statusor.cc", 5378 "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc", 5379 "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc", 5380 "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc", 5381 "third_party/protobuf/src/google/protobuf/stubs/strutil.cc", 5382 "third_party/protobuf/src/google/protobuf/stubs/time.cc", 5383 "third_party/protobuf/src/google/protobuf/wire_format_lite.cc", 5384 ] 5385 configs -= [ "//build/config/compiler:chromium_code" ] 5386 configs += [ 5387 "//build/config/compiler:no_chromium_code", 5388 ":protobuf_config", 5389 ] 5390 if (is_win) { 5391 configs -= [ "//build/config/win:lean_and_mean" ] 5392 } 5393 public_configs = [ ":protobuf_gen_config" ] 5394 } 5395 5396 # This target should be used only by the protoc compiler and by test targets. 5397 source_set("protobuf_full") { 5398 deps = [ ":protobuf_lite" ] 5399 sources = [ 5400 "third_party/protobuf/src/google/protobuf/any.cc", 5401 "third_party/protobuf/src/google/protobuf/any.pb.cc", 5402 "third_party/protobuf/src/google/protobuf/api.pb.cc", 5403 "third_party/protobuf/src/google/protobuf/compiler/importer.cc", 5404 "third_party/protobuf/src/google/protobuf/compiler/parser.cc", 5405 "third_party/protobuf/src/google/protobuf/descriptor.cc", 5406 "third_party/protobuf/src/google/protobuf/descriptor.pb.cc", 5407 "third_party/protobuf/src/google/protobuf/descriptor_database.cc", 5408 "third_party/protobuf/src/google/protobuf/duration.pb.cc", 5409 "third_party/protobuf/src/google/protobuf/dynamic_message.cc", 5410 "third_party/protobuf/src/google/protobuf/empty.pb.cc", 5411 "third_party/protobuf/src/google/protobuf/extension_set_heavy.cc", 5412 "third_party/protobuf/src/google/protobuf/field_mask.pb.cc", 5413 "third_party/protobuf/src/google/protobuf/generated_message_reflection.cc", 5414 "third_party/protobuf/src/google/protobuf/generated_message_table_driven.cc", 5415 "third_party/protobuf/src/google/protobuf/io/gzip_stream.cc", 5416 "third_party/protobuf/src/google/protobuf/io/printer.cc", 5417 "third_party/protobuf/src/google/protobuf/io/tokenizer.cc", 5418 "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc", 5419 "third_party/protobuf/src/google/protobuf/map_field.cc", 5420 "third_party/protobuf/src/google/protobuf/message.cc", 5421 "third_party/protobuf/src/google/protobuf/reflection_ops.cc", 5422 "third_party/protobuf/src/google/protobuf/service.cc", 5423 "third_party/protobuf/src/google/protobuf/source_context.pb.cc", 5424 "third_party/protobuf/src/google/protobuf/struct.pb.cc", 5425 "third_party/protobuf/src/google/protobuf/stubs/mathlimits.cc", 5426 "third_party/protobuf/src/google/protobuf/stubs/substitute.cc", 5427 "third_party/protobuf/src/google/protobuf/text_format.cc", 5428 "third_party/protobuf/src/google/protobuf/timestamp.pb.cc", 5429 "third_party/protobuf/src/google/protobuf/type.pb.cc", 5430 "third_party/protobuf/src/google/protobuf/unknown_field_set.cc", 5431 "third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc", 5432 "third_party/protobuf/src/google/protobuf/util/field_comparator.cc", 5433 "third_party/protobuf/src/google/protobuf/util/field_mask_util.cc", 5434 "third_party/protobuf/src/google/protobuf/util/internal/datapiece.cc", 5435 "third_party/protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc", 5436 "third_party/protobuf/src/google/protobuf/util/internal/error_listener.cc", 5437 "third_party/protobuf/src/google/protobuf/util/internal/field_mask_utility.cc", 5438 "third_party/protobuf/src/google/protobuf/util/internal/json_escaping.cc", 5439 "third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter.cc", 5440 "third_party/protobuf/src/google/protobuf/util/internal/json_stream_parser.cc", 5441 "third_party/protobuf/src/google/protobuf/util/internal/object_writer.cc", 5442 "third_party/protobuf/src/google/protobuf/util/internal/proto_writer.cc", 5443 "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc", 5444 "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc", 5445 "third_party/protobuf/src/google/protobuf/util/internal/type_info.cc", 5446 "third_party/protobuf/src/google/protobuf/util/internal/type_info_test_helper.cc", 5447 "third_party/protobuf/src/google/protobuf/util/internal/utility.cc", 5448 "third_party/protobuf/src/google/protobuf/util/json_util.cc", 5449 "third_party/protobuf/src/google/protobuf/util/message_differencer.cc", 5450 "third_party/protobuf/src/google/protobuf/util/time_util.cc", 5451 "third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc", 5452 "third_party/protobuf/src/google/protobuf/wire_format.cc", 5453 "third_party/protobuf/src/google/protobuf/wrappers.pb.cc", 5454 ] 5455 configs -= [ "//build/config/compiler:chromium_code" ] 5456 configs += [ 5457 "//build/config/compiler:no_chromium_code", 5458 ":protobuf_config", 5459 ] 5460 if (is_win) { 5461 configs -= [ "//build/config/win:lean_and_mean" ] 5462 } 5463 public_configs = [ ":protobuf_gen_config" ] 5464 } 5465 5466 if (current_toolchain == host_toolchain) { 5467 source_set("protoc_lib") { 5468 deps = [ ":protobuf_full" ] 5469 sources = [ 5470 "third_party/protobuf/src/google/protobuf/compiler/code_generator.cc", 5471 "third_party/protobuf/src/google/protobuf/compiler/command_line_interface.cc", 5472 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc", 5473 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc", 5474 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc", 5475 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc", 5476 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc", 5477 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc", 5478 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc", 5479 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc", 5480 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc", 5481 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc", 5482 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc", 5483 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc", 5484 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc", 5485 "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc", 5486 "third_party/protobuf/src/google/protobuf/compiler/plugin.cc", 5487 "third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc", 5488 "third_party/protobuf/src/google/protobuf/compiler/subprocess.cc", 5489 "third_party/protobuf/src/google/protobuf/compiler/zip_writer.cc", 5490 ] 5491 configs -= [ "//build/config/compiler:chromium_code" ] 5492 configs += [ 5493 "//build/config/compiler:no_chromium_code", 5494 ":protobuf_config", 5495 ] 5496 if (is_win) { 5497 configs -= [ "//build/config/win:lean_and_mean" ] 5498 } 5499 public_configs = [ ":protobuf_gen_config" ] 5500 } 5501 5502 executable("protoc") { 5503 deps = [ 5504 ":protoc_lib", 5505 "//build/win:default_exe_manifest", 5506 ] 5507 sources = [ "src/protobuf/protobuf-compiler-main.cc" ] 5508 configs -= [ "//build/config/compiler:chromium_code" ] 5509 configs += [ "//build/config/compiler:no_chromium_code" ] 5510 } 5511 } # host_toolchain 5512 5513 v8_component("v8_libperfetto") { 5514 configs = [ ":v8_tracing_config" ] 5515 public_configs = [ "//third_party/perfetto/gn:public_config" ] 5516 deps = [ 5517 "//third_party/perfetto/src/trace_processor:export_json", 5518 "//third_party/perfetto/src/trace_processor:storage_minimal", 5519 "//third_party/perfetto/src/tracing:client_api", 5520 "//third_party/perfetto/src/tracing/core", 5521 5522 # TODO(skyostil): Support non-POSIX platforms. 5523 "//third_party/perfetto/protos/perfetto/config:cpp", 5524 "//third_party/perfetto/protos/perfetto/trace/track_event:zero", 5525 "//third_party/perfetto/src/tracing:in_process_backend", 5526 "//third_party/perfetto/src/tracing:platform_posix", 5527 ] 5528 } 5529} # if (!build_with_chromium && v8_use_perfetto) 5530