1# Copyright (c) 2021-2024 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//arkcompiler/ets_frontend/es2panda/es2abc_config.gni") 15import("//arkcompiler/ets_runtime/js_runtime_config.gni") 16import("$build_root/toolchain/toolchain.gni") 17 18if (!ark_standalone_build && is_ohos) { 19 import("//build/ohos.gni") 20} 21 22group("ark_js_packages") { 23 deps = [] 24 25 deps += [ 26 ":js_type_metadata", 27 ":libark_jsruntime", 28 "ecmascript/compiler:stub.an", 29 "ecmascript/dfx/hprof:ark_js_heap_snapshot_tool", 30 "ecmascript/dfx/hprof/rawheap_translate:rawheap_translator", 31 "ecmascript/js_vm:ark_js_vm", 32 "ecmascript/quick_fix:quick_fix", 33 ] 34 if (is_clang && clang_version != "9.0.3" && current_cpu == "arm64" && 35 is_ohos) { 36 deps += [ 37 "ecmascript/compiler:ark_aot_compiler", 38 "ecmascript/compiler:libark_jsoptimizer", 39 ] 40 } 41} 42 43group("ap_viewer_all_host_tools_packages") { 44 if (host_os != "mac" && target_os != "android") { 45 deps = [ 46 "tools/ap_file_viewer/native:apViewer($build_root/toolchain/mingw:mingw_x86_64)", 47 "tools/ap_file_viewer/native:apViewer(${host_toolchain})", 48 ] 49 } 50} 51 52group("ark_js_host_windows_tools_packages") { 53 deps = [] 54 if (host_os != "mac" && target_os != "android") { 55 deps += [ 56 "ecmascript/compiler:ark_aot_compiler($build_root/toolchain/mingw:mingw_x86_64)", 57 "ecmascript/js_vm:ark_js_vm($build_root/toolchain/mingw:mingw_x86_64)", 58 "ecmascript/pgo_profiler/prof_dump:profdump($build_root/toolchain/mingw:mingw_x86_64)", 59 ] 60 } 61} 62 63group("ark_js_host_mac_tools_packages") { 64 deps = [] 65 if (host_os == "mac") { 66 if (host_cpu == "arm64") { 67 deps += [ 68 "ecmascript/compiler:ark_aot_compiler($build_root/toolchain/mac:clang_arm64)", 69 "ecmascript/js_vm:ark_js_vm($build_root/toolchain/mac:clang_arm64)", 70 "ecmascript/pgo_profiler/prof_dump:profdump($build_root/toolchain/mac:clang_arm64)", 71 ] 72 } else { 73 deps += [ 74 "ecmascript/compiler:ark_aot_compiler($build_root/toolchain/mac:clang_x64)", 75 "ecmascript/js_vm:ark_js_vm($build_root/toolchain/mac:clang_x64)", 76 "ecmascript/pgo_profiler/prof_dump:profdump($build_root/toolchain/mac:clang_x64)", 77 ] 78 } 79 } 80} 81 82ohos_static_library("ark_js_host_linux_tools_packages") { 83 deps = [] 84 85 deps += [ 86 "ecmascript/dfx/hprof:ark_js_heap_snapshot_tool(${host_toolchain})", 87 "ecmascript/js_vm:ark_js_vm(${host_toolchain})", 88 "ecmascript/quick_fix:quick_fix(${host_toolchain})", 89 ] 90 if (is_standard_system) { 91 deps += [ 92 "ecmascript/compiler:ark_aot_compiler(${host_toolchain})", 93 "ecmascript/compiler:ark_stub_compiler(${host_toolchain})", 94 "ecmascript/compiler:libark_jsoptimizer(${host_toolchain})", 95 "ecmascript/pgo_profiler/prof_dump:profdump(${host_toolchain})", 96 ] 97 } 98 part_name = "ets_runtime" 99 subsystem_name = "arkcompiler" 100} 101 102group("ark_js_unittest") { 103 testonly = true 104 deps = [] 105 106 deps += [ 107 "ecmascript/base/tests:unittest", 108 "ecmascript/builtins/tests:unittest", 109 "ecmascript/containers/tests:unittest", 110 "ecmascript/debugger/tests:unittest", 111 "ecmascript/dfx/cpu_profiler/tests:unittest", 112 "ecmascript/dfx/hprof/tests:unittest", 113 "ecmascript/dfx/stackinfo/tests:unittest", 114 "ecmascript/extractortool/tests:unittest", 115 "ecmascript/ic/tests:unittest", 116 "ecmascript/jobs/tests:unittest", 117 "ecmascript/jspandafile/tests:unittest", 118 "ecmascript/module/tests:unittest", 119 "ecmascript/napi/test:unittest", 120 "ecmascript/napi/test:workload_test", 121 "ecmascript/platform/unix/ohos/tests:unittest", 122 "ecmascript/regexp/tests:unittest", 123 "ecmascript/require/tests:unittest", 124 "ecmascript/serializer/tests:unittest", 125 "ecmascript/snapshot/tests:unittest", 126 "ecmascript/tests:unittest", 127 ] 128 if (is_ohos && is_standard_system) { 129 deps += [ "test/fuzztest:fuzztest" ] 130 } 131 if (current_cpu == "arm64") { 132 deps += [ 133 "ecmascript/compiler/aot_file/tests:host_unittest", 134 "ecmascript/pgo_profiler/tests:unittest", 135 ] 136 } 137 if (current_cpu == "arm64" || current_cpu == "amd64") { 138 deps += [ "ecmascript/jit/tests:unittest" ] 139 } 140} 141 142group("ark_js_perform") { 143 testonly = true 144 deps = [] 145 deps += [ "//arkcompiler/ets_runtime/test/perform:perform" ] 146} 147 148group("ark_unittest") { 149 testonly = true 150 deps = [] 151 152 # js unittest 153 deps += [ # Register the executable block name of the unit test script here 154 "ecmascript/base/tests:host_unittest", 155 "ecmascript/builtins/tests:host_unittest", 156 "ecmascript/compiler/aot_file/tests:host_unittest", 157 "ecmascript/compiler/codegen/maple/test:host_unittest", 158 "ecmascript/containers/tests:host_unittest", 159 "ecmascript/dfx/cpu_profiler/tests:host_unittest", 160 "ecmascript/dfx/hprof/tests:host_unittest", 161 "ecmascript/dfx/stackinfo/tests:host_unittest", 162 "ecmascript/extractortool/tests:host_unittest", 163 "ecmascript/ic/tests:host_unittest", 164 "ecmascript/jit/tests:host_unittest", 165 "ecmascript/jobs/tests:host_unittest", 166 "ecmascript/jspandafile/tests:host_unittest", 167 "ecmascript/module/tests:host_unittest", 168 "ecmascript/napi/test:host_unittest", 169 "ecmascript/pgo_profiler/tests:host_unittest", 170 "ecmascript/platform/unix/ohos/tests:host_unittest", 171 "ecmascript/regexp/tests:host_unittest", 172 "ecmascript/require/tests:host_unittest", 173 "ecmascript/serializer/tests:host_unittest", 174 "ecmascript/snapshot/tests:host_unittest", 175 "ecmascript/tests:host_unittest", 176 ] 177 if (!run_with_asan) { 178 if (!(ark_standalone_build && current_os == "ohos")) { 179 deps += [ 180 "ecmascript/compiler/tests:host_unittest", 181 "ecmascript/ohos/tests:host_unittest", 182 ] 183 } 184 } 185} 186 187ohos_static_library("ark_runtime_host_unittest") { 188 testonly = true 189 deps = [] 190 191 # js unittest 192 deps += [ 193 ":ark_unittest", 194 "$js_root/test/pgotypeinfer:ark_pgotypeinfer_test", 195 ] 196 197 # js bytecode test 198 deps += [ 199 "$js_root/test/moduletest:ark_js_assert_moduletest", 200 "$js_root/test/moduletest:ark_js_moduletest", 201 ] 202 203 # quickfix test 204 deps += [ "$js_root/test/quickfix:ark_quickfix_test" ] 205 if (!ark_standalone_build && run_regress_test) { 206 deps += [ "$js_root/test/regresstest:ark_regress_test" ] 207 } 208 209 # execution test 210 deps += [ "$js_root/test/executiontest:ark_execution_test" ] 211 212 # jit test 213 deps += [ "$js_root/test/jittest:ark_jit_test" ] 214 215 # ts aot test and asm test 216 if (!run_with_asan) { 217 deps += [ 218 "$js_root/test/aottest:ark_aot_test", 219 220 #"$js_root/test/moduletest:ark_asm_single_step_test", 221 "$js_root/test/deopttest:ark_deopt_test", 222 223 # Temporarily closed 224 # "$js_root/test/deopttest:ark_deopt_to_baseline_test", 225 "$js_root/test/moduletest:ark_asm_assert_test", 226 "$js_root/test/moduletest:ark_asm_test", 227 ] 228 229 if (is_mac) { 230 deps -= [ 231 "$js_root/test/moduletest:ark_asm_assert_test", 232 "$js_root/test/moduletest:ark_asm_test", 233 ] 234 } 235 } 236 part_name = "ets_runtime" 237 subsystem_name = "arkcompiler" 238} 239 240config("ark_jsruntime_public_config") { 241 configs = [ 242 "$ark_root/libpandabase:arkbase_public_config", 243 "$ark_root/libpandafile:arkfile_public_config", 244 "$ark_third_party_root/icu/icu4c:icu_config", 245 sdk_libc_secshared_config, 246 ] 247 248 include_dirs = [ 249 "$js_root", 250 "$js_root/ecmascript/napi/include", 251 ] 252} 253 254intl_sources = [] 255 256if (enable_ark_intl) { 257 intl_sources += [ 258 "ecmascript/builtins/builtins_collator.cpp", 259 "ecmascript/builtins/builtins_date_time_format.cpp", 260 "ecmascript/builtins/builtins_displaynames.cpp", 261 "ecmascript/builtins/builtins_intl.cpp", 262 "ecmascript/builtins/builtins_list_format.cpp", 263 "ecmascript/builtins/builtins_locale.cpp", 264 "ecmascript/builtins/builtins_number_format.cpp", 265 "ecmascript/builtins/builtins_plural_rules.cpp", 266 "ecmascript/builtins/builtins_relative_time_format.cpp", 267 "ecmascript/builtins/builtins_segment_iterator.cpp", 268 "ecmascript/builtins/builtins_segmenter.cpp", 269 "ecmascript/builtins/builtins_segments.cpp", 270 "ecmascript/js_collator.cpp", 271 "ecmascript/js_date_time_format.cpp", 272 "ecmascript/js_displaynames.cpp", 273 "ecmascript/js_list_format.cpp", 274 "ecmascript/js_locale.cpp", 275 "ecmascript/js_number_format.cpp", 276 "ecmascript/js_plural_rules.cpp", 277 "ecmascript/js_relative_time_format.cpp", 278 "ecmascript/js_segment_iterator.cpp", 279 "ecmascript/js_segmenter.cpp", 280 "ecmascript/js_segments.cpp", 281 ] 282} else { 283 if (target_os != "android" && target_os != "ios") { 284 intl_sources += [ "ecmascript/intl/global_intl_helper.cpp" ] 285 } 286} 287 288config("ark_jsruntime_compiler_config") { 289 configs = [ "$js_root:ark_jsruntime_common_config" ] 290} 291 292config("hiviewdfx_config") { 293 defines = [] 294 if (enable_dump_in_faultlog) { 295 defines += [ "ENABLE_DUMP_IN_FAULTLOG" ] 296 } 297 if (enable_bytrace) { 298 defines += [ "ENABLE_BYTRACE" ] 299 cflags_cc = [ "-Wno-gnu-zero-variadic-macro-arguments" ] 300 } 301 if (enable_hitrace) { 302 defines += [ "ENABLE_HITRACE" ] 303 } 304 if (enable_hilog) { 305 defines += [ "ENABLE_HILOG" ] 306 } 307 if (enable_hisysevent) { 308 defines += [ 309 "ENABLE_HISYSEVENT", 310 "ENABLE_UCOLLECTION", 311 ] 312 } 313 if (enable_unwinder) { 314 defines += [ "ENABLE_UNWINDER" ] 315 } 316 317 include_dirs = [ "$hilog_root/include" ] 318} 319 320config("ark_jsruntime_common_config") { 321 configs = [ ":hiviewdfx_config" ] 322 323 defines = [ "PANDA_ENABLE_LTO" ] 324 325 if (ark_standalone_build) { 326 defines += [ "STANDALONE_MODE" ] 327 } 328 329 cflags_cc = [ 330 "-Wall", 331 "-Wshadow", 332 "-Werror", 333 "-Wextra", 334 "-pedantic", 335 "-Wno-invalid-offsetof", 336 "-Wno-gnu-statement-expression", 337 "-pipe", 338 "-Wdate-time", 339 "-funwind-tables", 340 "-fno-rtti", 341 "-fasynchronous-unwind-tables", 342 "-Wformat=2", 343 "-std=c++17", 344 "-Wno-unused-but-set-variable", 345 ] 346 347 cflags_c = [] 348 349 if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) { 350 if (ets_runtime_feature_enable_pgo) { 351 cflags = [ 352 "-fprofile-use=" + rebase_path( 353 "${ets_runtime_feature_pgo_path}/libark_jsruntime.profdata", 354 root_build_dir), 355 "-Wno-error=backend-plugin", 356 "-Wno-profile-instr-out-of-date", 357 "-Wno-profile-instr-unprofiled", 358 ] 359 } 360 } 361 362 if (use_musl) { 363 defines += [ "PANDA_USE_MUSL" ] 364 } 365 366 if (build_public_version) { 367 defines += [ "IS_PUBLIC_VERSION" ] 368 } 369 370 if (is_arkui_x) { 371 defines += [ "CROSS_PLATFORM" ] 372 } 373 374 if (target_os == "android") { 375 defines += [ "ANDROID_PLATFORM" ] 376 } 377 378 if (ark_compile_mode != "release") { 379 ark_profiler_features = [ 380 "ECMASCRIPT_SUPPORT_CPUPROFILER", 381 "ECMASCRIPT_SUPPORT_HEAPPROFILER", 382 "ECMASCRIPT_SUPPORT_HEAPSAMPLING", 383 "ECMASCRIPT_SUPPORT_SNAPSHOT", 384 "ECMASCRIPT_SUPPORT_TRACING", 385 ] 386 defines += [ "ECMASCRIPT_SUPPORT_DEBUGGER" ] 387 defines += ark_profiler_features 388 } 389 390 ldflags = [] 391 if (is_linux) { 392 defines += [ 393 "PANDA_TARGET_PREVIEW", 394 "PANDA_TARGET_UNIX", 395 "PANDA_TARGET_LINUX", 396 "PANDA_USE_FUTEX", 397 ] 398 } else if (is_mingw) { 399 cflags_cc += [ 400 "-std=c++17", 401 "-Wno-ignored-attributes", 402 ] 403 defines += [ 404 "PANDA_TARGET_PREVIEW", 405 "PANDA_TARGET_WINDOWS", 406 "_CRTBLD", 407 "__LIBMSVCRT__", 408 ] 409 410 ldflags += [ "-lshlwapi" ] 411 412 # not support profiler on Windows yet 413 if (ark_compile_mode != "release") { 414 defines -= ark_profiler_features 415 } 416 } else if (is_mac) { 417 cflags_cc += [ "-std=c++17" ] 418 defines += [ 419 "PANDA_TARGET_PREVIEW", 420 "PANDA_TARGET_UNIX", 421 "PANDA_TARGET_MACOS", 422 ] 423 424 # not support profiler on MacOS yet 425 if (ark_compile_mode != "release") { 426 defines -= ark_profiler_features 427 } 428 } else if (target_os == "android") { 429 defines += [ 430 "PANDA_TARGET_ANDROID", 431 "PANDA_TARGET_UNIX", 432 "PANDA_USE_FUTEX", 433 ] 434 if (current_cpu == "arm64") { 435 defines += [ "EXCLUDE_C_INTERPRETER" ] 436 } 437 if (!ark_standalone_build) { 438 defines += [ "ENABLE_ANLOG" ] 439 } 440 } else if (target_os == "ios") { 441 defines += [ 442 "PANDA_TARGET_IOS", 443 "PANDA_TARGET_UNIX", 444 ] 445 446 # not support profiler on iOS yet 447 if (ark_compile_mode != "release") { 448 defines -= ark_profiler_features 449 } 450 } else { 451 defines += [ 452 "PANDA_TARGET_UNIX", 453 "PANDA_USE_FUTEX", 454 ] 455 if (!is_standard_system && (current_cpu != "arm" || is_wearable_product)) { 456 defines += [ "PANDA_TARGET_MOBILE" ] 457 } 458 } 459 460 if (is_ohos) { 461 defines += [ "PANDA_TARGET_OHOS" ] 462 } 463 464 if (is_qemu_runtime && is_ohos) { 465 defines += [ "OHOS_FOR_QEMU" ] 466 } 467 468 if (!is_mac && target_os != "ios" && !use_libfuzzer && !enable_lto_O0) { 469 cflags_cc += [ "-flto=thin" ] 470 ldflags += [ "-flto=thin" ] 471 } 472 473 if (use_libfuzzer) { 474 defines += [ "FUZZ_TEST" ] 475 } 476 477 if (is_fastverify) { 478 cflags_cc += [ 479 "-O3", 480 "-ggdb3", 481 "-fno-omit-frame-pointer", 482 "-D_GLIBCXX_ASSERTIONS", 483 ] 484 cflags_c += [ 485 "-O3", 486 "-ggdb3", 487 "-fno-omit-frame-pointer", 488 "-D_GLIBCXX_ASSERTIONS", 489 ] 490 } else if (is_debug) { 491 cflags_cc += [ 492 "-O0", 493 "-ggdb3", 494 ] 495 } else { 496 defines += [ "NDEBUG" ] 497 } 498 499 if (enable_asm_assert) { 500 defines += [ "ENABLE_ASM_ASSERT" ] 501 } 502 503 if (run_with_asan) { 504 defines += [ "RUN_WITH_ASAN" ] 505 } 506 507 if (enable_cow_array) { 508 defines += [ "ENABLE_COW_ARRAY" ] 509 } 510 511 if (current_cpu == "arm") { 512 defines += [ 513 "PANDA_TARGET_ARM32_ABI_SOFT=1", 514 "PANDA_TARGET_ARM32", 515 "PANDA_TARGET_32", 516 ] 517 } else if (current_cpu == "arm64") { 518 defines += [ 519 "PANDA_TARGET_ARM64", 520 "PANDA_TARGET_64", 521 "PANDA_ENABLE_GLOBAL_REGISTER_VARIABLES", 522 "PANDA_USE_32_BIT_POINTER", 523 ] 524 } else if (current_cpu == "x86") { 525 defines += [ "PANDA_TARGET_X86" ] 526 } else if (current_cpu == "amd64" || current_cpu == "x64" || 527 current_cpu == "x86_64") { 528 defines += [ 529 "PANDA_TARGET_64", 530 "PANDA_TARGET_AMD64", 531 "PANDA_USE_32_BIT_POINTER", 532 ] 533 } 534 if (enable_ark_intl) { 535 defines += [ "ARK_SUPPORT_INTL" ] 536 } else { 537 if (target_os == "android" || target_os == "ios") { 538 defines += [ "ARK_NOT_SUPPORT_INTL_GLOBAL" ] 539 } else { 540 configs += [ "$global_root/frameworks/intl:intl_util_config" ] 541 } 542 } 543 544 if (enable_handle_leak_detect) { 545 defines += [ "ENABLE_LOCAL_HANDLE_LEAK_DETECT" ] 546 } 547 548 if (is_ohos && is_standard_system) { 549 defines += [ "ENABLE_EXCEPTION_BACKTRACE" ] 550 551 if (use_musl && (current_cpu == "arm" || current_cpu == "arm64") && 552 !is_mac && !is_mingw && target_os != "ios" && !is_asan) { 553 defines += [ "HOOK_ENABLE" ] 554 } 555 } 556 557 # is_asan: skynet config; run_with_asan: est_runtime enable asan config 558 if (is_asan) { 559 defines += [ 560 "ECMASCRIPT_ENABLE_ASAN_DFX_CONFIG", 561 "ECMASCRIPT_ENABLE_ASAN_THREAD_CHECK", 562 ] 563 } 564 565 code_encrypto_enable = true 566 if (defined(global_parts_info) && 567 !defined(global_parts_info.security_code_crypto_metadata_process)) { 568 code_encrypto_enable = false 569 } 570 if (is_mingw && ark_standalone_build) { 571 code_encrypto_enable = false 572 } 573 if (code_encrypto_enable) { 574 defines += [ "CODE_ENCRYPTION_ENABLE" ] 575 } 576} 577 578# ecmascript unit testcase config 579config("ecma_test_config") { 580 visibility = [ 581 "./ecmascript/*", 582 "./test/executiontest/*", 583 "./test/fuzztest/*", 584 "./tools/ap_file_viewer/*", 585 ] 586 587 configs = [ 588 "$js_root:ark_jsruntime_public_config", 589 "$js_root:ark_jsruntime_common_config", 590 ] 591 592 if (enable_handle_leak_detect) { 593 defines = [ "ENABLE_LOCAL_HANDLE_LEAK_DETECT" ] 594 } 595 if (!is_mac) { 596 ldflags = [ "-Wl,-rpath=\$ORIGIN/" ] 597 } else { 598 ldflags = [ "-Wl" ] 599 } 600 601 if (!ark_standalone_build) { 602 ldflags += [ "-Wl,--lto-O0" ] 603 } 604} 605 606# ecmascript icu path for testcase config 607config("icu_path_test_config") { 608 icu_data_path = rebase_path("//third_party/icu/ohos_icu4j/data") 609 defines = [ "ICU_PATH=\"${icu_data_path}\"" ] 610} 611 612# asm interpreter enable config 613config("asm_interp_enable_config") { 614 if ((current_cpu == "amd64" || current_cpu == "x64" || 615 current_cpu == "x86_64" || current_cpu == "arm64") && !is_mingw && 616 !is_mac && target_os != "ios") { 617 defines = [ "SUPPORT_ENABLE_ASM_INTERP" ] 618 } 619} 620 621ecma_source = [ 622 "ecmascript/base/array_helper.cpp", 623 "ecmascript/base/atomic_helper.cpp", 624 "ecmascript/base/builtins_base.cpp", 625 "ecmascript/base/dtoa_helper.cpp", 626 "ecmascript/base/error_helper.cpp", 627 "ecmascript/base/json_helper.cpp", 628 "ecmascript/base/json_parser.cpp", 629 "ecmascript/base/json_stringifier.cpp", 630 "ecmascript/base/number_helper.cpp", 631 "ecmascript/base/path_helper.cpp", 632 "ecmascript/base/sort_helper.cpp", 633 "ecmascript/base/string_helper.cpp", 634 "ecmascript/base/typed_array_helper.cpp", 635 "ecmascript/base/utf_helper.cpp", 636 "ecmascript/builtins/builtins.cpp", 637 "ecmascript/builtins/builtins_ark_tools.cpp", 638 "ecmascript/builtins/builtins_array.cpp", 639 "ecmascript/builtins/builtins_shared_array.cpp", 640 "ecmascript/builtins/builtins_sendable_arraybuffer.cpp", 641 "ecmascript/builtins/builtins_arraybuffer.cpp", 642 "ecmascript/builtins/builtins_async_from_sync_iterator.cpp", 643 "ecmascript/builtins/builtins_async_function.cpp", 644 "ecmascript/builtins/builtins_shared_async_function.cpp", 645 "ecmascript/builtins/builtins_async_generator.cpp", 646 "ecmascript/builtins/builtins_atomics.cpp", 647 "ecmascript/builtins/builtins_bigint.cpp", 648 "ecmascript/builtins/builtins_boolean.cpp", 649 "ecmascript/builtins/builtins_dataview.cpp", 650 "ecmascript/builtins/builtins_date.cpp", 651 "ecmascript/builtins/builtins_errors.cpp", 652 "ecmascript/builtins/builtins_finalization_registry.cpp", 653 "ecmascript/builtins/builtins_function.cpp", 654 "ecmascript/builtins/builtins_gc.cpp", 655 "ecmascript/builtins/builtins_generator.cpp", 656 "ecmascript/builtins/builtins_global.cpp", 657 "ecmascript/builtins/builtins_iterator.cpp", 658 "ecmascript/builtins/builtins_async_iterator.cpp", 659 "ecmascript/builtins/builtins_json.cpp", 660 "ecmascript/builtins/builtins_lazy_callback.cpp", 661 "ecmascript/builtins/builtins_map.cpp", 662 "ecmascript/builtins/builtins_math.cpp", 663 "ecmascript/builtins/builtins_number.cpp", 664 "ecmascript/builtins/builtins_object.cpp", 665 "ecmascript/builtins/builtins_promise.cpp", 666 "ecmascript/builtins/builtins_promise_handler.cpp", 667 "ecmascript/builtins/builtins_promise_job.cpp", 668 "ecmascript/builtins/builtins_proxy.cpp", 669 "ecmascript/builtins/builtins_reflect.cpp", 670 "ecmascript/builtins/builtins_regexp.cpp", 671 "ecmascript/builtins/builtins_set.cpp", 672 "ecmascript/builtins/builtins_sharedarraybuffer.cpp", 673 "ecmascript/builtins/builtins_string.cpp", 674 "ecmascript/builtins/builtins_shared_function.cpp", 675 "ecmascript/builtins/builtins_string_iterator.cpp", 676 "ecmascript/builtins/builtins_shared_object.cpp", 677 "ecmascript/builtins/builtins_shared_set.cpp", 678 "ecmascript/builtins/builtins_shared_map.cpp", 679 "ecmascript/builtins/builtins_shared_typedarray.cpp", 680 "ecmascript/builtins/builtins_symbol.cpp", 681 "ecmascript/builtins/builtins_typedarray.cpp", 682 "ecmascript/builtins/builtins_weak_map.cpp", 683 "ecmascript/builtins/builtins_weak_ref.cpp", 684 "ecmascript/builtins/builtins_weak_set.cpp", 685 "ecmascript/builtins/shared_builtins.cpp", 686 "ecmascript/byte_array.cpp", 687 "ecmascript/ohos/code_decrypt.cpp", 688 "ecmascript/ohos/enable_aot_list_helper.cpp", 689 "ecmascript/compiler/aot_constantpool_patcher.cpp", 690 "ecmascript/compiler/aot_file/elf_builder.cpp", 691 "ecmascript/compiler/aot_file/elf_reader.cpp", 692 "ecmascript/compiler/aot_file/elf_checker.cpp", 693 "ecmascript/compiler/aot_file/an_file_data_manager.cpp", 694 "ecmascript/compiler/aot_file/an_file_info.cpp", 695 "ecmascript/compiler/aot_file/aot_checksum_helper.cpp", 696 "ecmascript/compiler/aot_file/aot_file_info.cpp", 697 "ecmascript/compiler/aot_file/stub_file_info.cpp", 698 "ecmascript/compiler/aot_file/gdb_jit.cpp", 699 "ecmascript/compiler/aot_file/binary_buffer_parser.cpp", 700 "ecmascript/compiler/aot_file/module_section_des.cpp", 701 "ecmascript/compiler/aot_file/aot_file_manager.cpp", 702 "ecmascript/compiler/aot_file/aot_version.cpp", 703 "ecmascript/compiler/aot_snapshot/aot_snapshot.cpp", 704 "ecmascript/compiler/aot_snapshot/snapshot_constantpool_data.cpp", 705 "ecmascript/compiler/aot_snapshot/snapshot_global_data.cpp", 706 "ecmascript/compiler/pgo_bc_info.cpp", 707 "ecmascript/compiler/pgo_type/pgo_hclass_generator.cpp", 708 "ecmascript/compiler/pgo_type/pgo_type_manager.cpp", 709 "ecmascript/compiler/pgo_type/pgo_type_parser.cpp", 710 "ecmascript/compiler/pgo_type/pgo_type_recorder.cpp", 711 "ecmascript/containers/containers_arraylist.cpp", 712 "ecmascript/containers/containers_bitvector.cpp", 713 "ecmascript/containers/containers_deque.cpp", 714 "ecmascript/containers/containers_errors.cpp", 715 "ecmascript/containers/containers_hashmap.cpp", 716 "ecmascript/containers/containers_hashset.cpp", 717 "ecmascript/containers/containers_lightweightmap.cpp", 718 "ecmascript/containers/containers_lightweightset.cpp", 719 "ecmascript/containers/containers_linked_list.cpp", 720 "ecmascript/containers/containers_list.cpp", 721 "ecmascript/containers/containers_plainarray.cpp", 722 "ecmascript/containers/containers_private.cpp", 723 "ecmascript/containers/containers_queue.cpp", 724 "ecmascript/containers/containers_stack.cpp", 725 "ecmascript/containers/containers_treemap.cpp", 726 "ecmascript/containers/containers_treeset.cpp", 727 "ecmascript/containers/containers_vector.cpp", 728 "ecmascript/date_parse.cpp", 729 "ecmascript/debugger/js_debugger_manager.cpp", 730 "ecmascript/deoptimizer/calleeReg.cpp", 731 "ecmascript/deoptimizer/deoptimizer.cpp", 732 "ecmascript/dfx/stackinfo/async_stack_trace.cpp", 733 "ecmascript/dfx/dump_code/jit_dump_elf.cpp", 734 "ecmascript/dfx/native_module_failure_info.cpp", 735 "ecmascript/dfx/stackinfo/js_stackinfo.cpp", 736 "ecmascript/dfx/vmstat/caller_stat.cpp", 737 "ecmascript/dfx/vmstat/function_call_timer.cpp", 738 "ecmascript/dfx/vmstat/opt_code_profiler.cpp", 739 "ecmascript/dfx/vmstat/runtime_stat.cpp", 740 "ecmascript/dfx/vm_thread_control.cpp", 741 "ecmascript/dump.cpp", 742 "ecmascript/ecma_context.cpp", 743 "ecmascript/ecma_handle_scope.cpp", 744 "ecmascript/ecma_string.cpp", 745 "ecmascript/ecma_string_table.cpp", 746 "ecmascript/ecma_vm.cpp", 747 "ecmascript/element_accessor.cpp", 748 "ecmascript/elements.cpp", 749 "ecmascript/extractortool/src/source_map.cpp", 750 "ecmascript/frames.cpp", 751 "ecmascript/free_object.cpp", 752 "ecmascript/generator_helper.cpp", 753 "ecmascript/async_generator_helper.cpp", 754 "ecmascript/global_env.cpp", 755 "ecmascript/global_env_constants.cpp", 756 "ecmascript/ic/ic_handler.cpp", 757 "ecmascript/ic/ic_runtime.cpp", 758 "ecmascript/ic/profile_type_info.cpp", 759 "ecmascript/ic/mega_ic_cache.cpp", 760 "ecmascript/ic/property_box.cpp", 761 "ecmascript/ic/proto_change_details.cpp", 762 "ecmascript/interpreter/frame_handler.cpp", 763 "ecmascript/interpreter/interpreter.cpp", 764 "ecmascript/interpreter/interpreter_assembly.cpp", 765 "ecmascript/interpreter/interpreter-inl.cpp", 766 "ecmascript/interpreter/slow_runtime_stub.cpp", 767 "ecmascript/intl/locale_helper.cpp", 768 "ecmascript/jit/rewriter/reloc_rewriter_aarch64.cpp", 769 "ecmascript/jit/compile_decision.cpp", 770 "ecmascript/jit/jit.cpp", 771 "ecmascript/jit/jit_dfx.cpp", 772 "ecmascript/jit/jit_task.cpp", 773 "ecmascript/jit/jit_resources.cpp", 774 "ecmascript/jit/jit_thread.cpp", 775 "ecmascript/jit/jit_profiler.cpp", 776 "ecmascript/jobs/micro_job_queue.cpp", 777 "ecmascript/jspandafile/js_pandafile.cpp", 778 "ecmascript/jspandafile/js_pandafile_manager.cpp", 779 "ecmascript/jspandafile/class_info_extractor.cpp", 780 "ecmascript/jspandafile/debug_info_extractor.cpp", 781 "ecmascript/jspandafile/literal_data_extractor.cpp", 782 "ecmascript/jspandafile/panda_file_translator.cpp", 783 "ecmascript/jspandafile/js_pandafile_executor.cpp", 784 "ecmascript/jspandafile/scope_info_extractor.cpp", 785 "ecmascript/jspandafile/method_literal.cpp", 786 "ecmascript/jspandafile/program_object.cpp", 787 "ecmascript/js_api/js_api_arraylist.cpp", 788 "ecmascript/js_api/js_api_arraylist_iterator.cpp", 789 "ecmascript/js_api/js_api_bitvector.cpp", 790 "ecmascript/js_api/js_api_bitvector_iterator.cpp", 791 "ecmascript/js_api/js_api_deque.cpp", 792 "ecmascript/js_api/js_api_deque_iterator.cpp", 793 "ecmascript/js_api/js_api_hashmap.cpp", 794 "ecmascript/js_api/js_api_hashmap_iterator.cpp", 795 "ecmascript/js_api/js_api_hashset.cpp", 796 "ecmascript/js_api/js_api_hashset_iterator.cpp", 797 "ecmascript/js_api/js_api_lightweightmap.cpp", 798 "ecmascript/js_api/js_api_lightweightmap_iterator.cpp", 799 "ecmascript/js_api/js_api_lightweightset.cpp", 800 "ecmascript/js_api/js_api_lightweightset_iterator.cpp", 801 "ecmascript/js_api/js_api_linked_list.cpp", 802 "ecmascript/js_api/js_api_linked_list_iterator.cpp", 803 "ecmascript/js_api/js_api_list.cpp", 804 "ecmascript/js_api/js_api_list_iterator.cpp", 805 "ecmascript/js_api/js_api_plain_array.cpp", 806 "ecmascript/js_api/js_api_plain_array_iterator.cpp", 807 "ecmascript/js_api/js_api_queue.cpp", 808 "ecmascript/js_api/js_api_queue_iterator.cpp", 809 "ecmascript/js_api/js_api_stack.cpp", 810 "ecmascript/js_api/js_api_stack_iterator.cpp", 811 "ecmascript/js_api/js_api_tree_map.cpp", 812 "ecmascript/js_api/js_api_tree_map_iterator.cpp", 813 "ecmascript/js_api/js_api_tree_set.cpp", 814 "ecmascript/js_api/js_api_tree_set_iterator.cpp", 815 "ecmascript/js_api/js_api_vector.cpp", 816 "ecmascript/js_api/js_api_vector_iterator.cpp", 817 "ecmascript/js_arguments.cpp", 818 "ecmascript/js_array.cpp", 819 "ecmascript/shared_objects/js_shared_array.cpp", 820 "ecmascript/js_array_iterator.cpp", 821 "ecmascript/shared_objects/js_shared_array_iterator.cpp", 822 "ecmascript/js_arraybuffer.cpp", 823 "ecmascript/js_async_from_sync_iterator.cpp", 824 "ecmascript/js_async_function.cpp", 825 "ecmascript/js_bigint.cpp", 826 "ecmascript/js_dataview.cpp", 827 "ecmascript/js_date.cpp", 828 "ecmascript/js_for_in_iterator.cpp", 829 "ecmascript/js_finalization_registry.cpp", 830 "ecmascript/js_file_path.cpp", 831 "ecmascript/js_function.cpp", 832 "ecmascript/js_generator_object.cpp", 833 "ecmascript/js_async_generator_object.cpp", 834 "ecmascript/js_hclass.cpp", 835 "ecmascript/js_iterator.cpp", 836 "ecmascript/js_map.cpp", 837 "ecmascript/js_map_iterator.cpp", 838 "ecmascript/jsnapi_sendable.cpp", 839 "ecmascript/method.cpp", 840 "ecmascript/js_native_pointer.cpp", 841 "ecmascript/js_object.cpp", 842 "ecmascript/js_primitive_ref.cpp", 843 "ecmascript/js_promise.cpp", 844 "ecmascript/js_proxy.cpp", 845 "ecmascript/js_regexp_iterator.cpp", 846 "ecmascript/js_runtime_options.cpp", 847 "ecmascript/js_set.cpp", 848 "ecmascript/js_set_iterator.cpp", 849 "ecmascript/js_stable_array.cpp", 850 "ecmascript/js_string_iterator.cpp", 851 "ecmascript/js_tagged_value.cpp", 852 "ecmascript/js_thread.cpp", 853 "ecmascript/js_typed_array.cpp", 854 "ecmascript/js_weak_container.cpp", 855 "ecmascript/linked_hash_table.cpp", 856 "ecmascript/log.cpp", 857 "ecmascript/message_string.cpp", 858 "ecmascript/mem/assert_scope.cpp", 859 "ecmascript/mem/barriers.cpp", 860 "ecmascript/mem/c_string.cpp", 861 "ecmascript/mem/chunk.cpp", 862 "ecmascript/mem/dyn_chunk.cpp", 863 "ecmascript/mem/full_gc.cpp", 864 "ecmascript/mem/concurrent_marker.cpp", 865 "ecmascript/mem/concurrent_sweeper.cpp", 866 "ecmascript/mem/free_object_list.cpp", 867 "ecmascript/mem/free_object_set.cpp", 868 "ecmascript/mem/gc_stats.cpp", 869 "ecmascript/mem/idle_gc_trigger.cpp", 870 "ecmascript/mem/gc_key_stats.cpp", 871 "ecmascript/mem/heap.cpp", 872 "ecmascript/mem/heap_region_allocator.cpp", 873 "ecmascript/mem/incremental_marker.cpp", 874 "ecmascript/mem/linear_space.cpp", 875 "ecmascript/mem/machine_code.cpp", 876 "ecmascript/mem/mem_controller.cpp", 877 "ecmascript/mem/shared_mem_controller.cpp", 878 "ecmascript/mem/mem_controller_utils.cpp", 879 "ecmascript/mem/mem_map_allocator.cpp", 880 "ecmascript/mem/native_area_allocator.cpp", 881 "ecmascript/mem/parallel_evacuator.cpp", 882 "ecmascript/mem/parallel_marker.cpp", 883 "ecmascript/mem/partial_gc.cpp", 884 "ecmascript/mem/regexp_cached_chunk.cpp", 885 "ecmascript/mem/shared_heap/shared_concurrent_marker.cpp", 886 "ecmascript/mem/shared_heap/shared_concurrent_sweeper.cpp", 887 "ecmascript/mem/shared_heap/shared_gc.cpp", 888 "ecmascript/mem/shared_heap/shared_gc_evacuator.cpp", 889 "ecmascript/mem/shared_heap/shared_full_gc.cpp", 890 "ecmascript/mem/shared_heap/shared_gc_marker.cpp", 891 "ecmascript/mem/shared_heap/shared_space.cpp", 892 "ecmascript/mem/space.cpp", 893 "ecmascript/mem/sparse_space.cpp", 894 "ecmascript/mem/thread_local_allocation_buffer.cpp", 895 "ecmascript/mem/verification.cpp", 896 "ecmascript/mem/work_space_chunk.cpp", 897 "ecmascript/mem/allocation_inspector.cpp", 898 "ecmascript/mem/jit_fort.cpp", 899 "ecmascript/module/accessor/module_data_accessor.cpp", 900 "ecmascript/module/js_module_manager.cpp", 901 "ecmascript/module/js_dynamic_import.cpp", 902 "ecmascript/module/js_module_namespace.cpp", 903 "ecmascript/module/js_module_source_text.cpp", 904 "ecmascript/module/js_module_deregister.cpp", 905 "ecmascript/module/js_shared_module.cpp", 906 "ecmascript/module/js_shared_module_manager.cpp", 907 "ecmascript/module/module_data_extractor.cpp", 908 "ecmascript/module/module_logger.cpp", 909 "ecmascript/module/module_manager_helper.cpp", 910 "ecmascript/module/module_path_helper.cpp", 911 "ecmascript/module/module_tools.cpp", 912 "ecmascript/module/napi_module_loader.cpp", 913 "ecmascript/module/module_resolver.cpp", 914 "ecmascript/mutator_lock.cpp", 915 "ecmascript/napi/jsnapi.cpp", 916 "ecmascript/napi/jsnapi_expo.cpp", 917 "ecmascript/object_factory.cpp", 918 "ecmascript/object_operator.cpp", 919 "ecmascript/patch/patch_loader.cpp", 920 "ecmascript/patch/quick_fix_manager.cpp", 921 "ecmascript/patch/quick_fix_helper.cpp", 922 "ecmascript/pgo_profiler/ap_file/pgo_file_info.cpp", 923 "ecmascript/pgo_profiler/pgo_profiler.cpp", 924 "ecmascript/pgo_profiler/pgo_profiler_decoder.cpp", 925 "ecmascript/pgo_profiler/pgo_profiler_encoder.cpp", 926 "ecmascript/pgo_profiler/pgo_profiler_info.cpp", 927 "ecmascript/pgo_profiler/pgo_profiler_layout.cpp", 928 "ecmascript/pgo_profiler/pgo_profiler_manager.cpp", 929 "ecmascript/pgo_profiler/pgo_utils.cpp", 930 "ecmascript/pgo_profiler/pgo_state.cpp", 931 "ecmascript/pgo_profiler/pgo_info.cpp", 932 "ecmascript/pgo_profiler/ap_file/pgo_method_type_set.cpp", 933 "ecmascript/pgo_profiler/types/pgo_profile_type.cpp", 934 "ecmascript/property_accessor.cpp", 935 "ecmascript/serializer/base_deserializer.cpp", 936 "ecmascript/serializer/base_serializer.cpp", 937 "ecmascript/serializer/value_serializer.cpp", 938 "ecmascript/shared_object_factory.cpp", 939 "ecmascript/shared_objects/js_shared_map.cpp", 940 "ecmascript/shared_objects/js_shared_map_iterator.cpp", 941 "ecmascript/shared_objects/js_shared_set.cpp", 942 "ecmascript/shared_objects/js_shared_set_iterator.cpp", 943 "ecmascript/shared_objects/js_sendable_arraybuffer.cpp", 944 "ecmascript/stackmap/ark_stackmap_builder.cpp", 945 "ecmascript/stackmap/ark_stackmap_parser.cpp", 946 "ecmascript/stackmap/litecg/litecg_stackmap_type.cpp", 947 "ecmascript/stackmap/llvm/llvm_stackmap_parser.cpp", 948 "ecmascript/stackmap/llvm/llvm_stackmap_type.cpp", 949 "ecmascript/sustaining_js_handle.cpp", 950 "ecmascript/taskpool/taskpool.cpp", 951 "ecmascript/taskpool/runner.cpp", 952 "ecmascript/taskpool/task_queue.cpp", 953 "ecmascript/layout_info.cpp", 954 "ecmascript/regexp/regexp_executor.cpp", 955 "ecmascript/regexp/regexp_opcode.cpp", 956 "ecmascript/regexp/regexp_parser.cpp", 957 "ecmascript/regexp/regexp_parser_cache.cpp", 958 "ecmascript/daemon/daemon_thread.cpp", 959 "ecmascript/runtime.cpp", 960 "ecmascript/runtime_lock.cpp", 961 "ecmascript/shared_mm/shared_mm.cpp", 962 "ecmascript/tagged_dictionary.cpp", 963 "ecmascript/tagged_hash_array.cpp", 964 "ecmascript/tagged_list.cpp", 965 "ecmascript/tagged_node.cpp", 966 "ecmascript/tagged_array.cpp", 967 "ecmascript/tagged_tree.cpp", 968 "ecmascript/template_string.cpp", 969 "ecmascript/vtable.cpp", 970 "ecmascript/waiter_list.cpp", 971 "ecmascript/weak_vector.cpp", 972 "ecmascript/stubs/runtime_stubs.cpp", 973 "ecmascript/stubs/test_runtime_stubs.cpp", 974 "ecmascript/builtins/builtins_cjs_module.cpp", 975 "ecmascript/builtins/builtins_cjs_require.cpp", 976 "ecmascript/builtins/builtins_cjs_exports.cpp", 977 "ecmascript/require/js_cjs_module_cache.cpp", 978 "ecmascript/require/js_cjs_module.cpp", 979 "ecmascript/require/js_require_manager.cpp", 980] 981 982hitrace_scope_source = [] 983if (is_ohos && is_standard_system && enable_hitrace) { 984 hitrace_scope_source += [ "ecmascript/jobs/hitrace_scope.cpp" ] 985} 986 987ecma_debugger_source = [ 988 "ecmascript/debugger/debugger_api.cpp", 989 "ecmascript/debugger/js_debugger.cpp", 990 "ecmascript/debugger/dropframe_manager.cpp", 991 "ecmascript/debugger/hot_reload_manager.cpp", 992] 993 994ecma_profiler_source = [ "ecmascript/napi/dfx_jsnapi.cpp" ] 995if (!is_mingw && !is_mac && target_os != "ios") { 996 if (ark_compile_mode == "debug") { 997 ecma_profiler_source += [ 998 "ecmascript/dfx/cpu_profiler/cpu_profiler.cpp", 999 "ecmascript/dfx/cpu_profiler/sampling_processor.cpp", 1000 "ecmascript/dfx/cpu_profiler/samples_record.cpp", 1001 "ecmascript/dfx/hprof/file_stream.cpp", 1002 "ecmascript/dfx/hprof/heap_profiler.cpp", 1003 "ecmascript/dfx/hprof/heap_profiler_interface.cpp", 1004 "ecmascript/dfx/hprof/heap_root_visitor.cpp", 1005 "ecmascript/dfx/hprof/heap_sampling.cpp", 1006 "ecmascript/dfx/hprof/heap_snapshot.cpp", 1007 "ecmascript/dfx/hprof/heap_snapshot_json_serializer.cpp", 1008 "ecmascript/dfx/hprof/heap_tracker.cpp", 1009 "ecmascript/dfx/hprof/string_hashmap.cpp", 1010 "ecmascript/dfx/stackinfo/js_stackgetter.cpp", 1011 "ecmascript/base/block_hook_scope.cpp", 1012 "ecmascript/dfx/tracing/tracing.cpp", 1013 ] 1014 } 1015} 1016 1017ecma_profiler_source += [ 1018 "ecmascript/snapshot/mem/snapshot.cpp", 1019 "ecmascript/snapshot/mem/snapshot_env.cpp", 1020 "ecmascript/snapshot/mem/snapshot_processor.cpp", 1021] 1022 1023ecma_stackinfo_source = [] 1024 1025ecma_stackinfo_source = [ 1026 "ecmascript/extractortool/src/extractor.cpp", 1027 "ecmascript/extractortool/src/file_mapper.cpp", 1028 "ecmascript/extractortool/src/file_path_utils.cpp", 1029 "ecmascript/extractortool/src/zip_file_reader_io.cpp", 1030 "ecmascript/extractortool/src/zip_file_reader_mem.cpp", 1031 "ecmascript/extractortool/src/zip_file_reader.cpp", 1032 "ecmascript/extractortool/src/zip_file.cpp", 1033] 1034 1035ecma_platform_source = [] 1036 1037ecma_platform_source += [ 1038 "ecmascript/platform/common/map.cpp", 1039 "ecmascript/platform/common/mutex.cpp", 1040 "ecmascript/platform/common/filesystem.cpp", 1041 "ecmascript/platform/common/ffrt.cpp", 1042] 1043 1044config("include_llvm") { 1045 if (compile_llvm_online) { 1046 include_dirs = [ 1047 "//third_party/third_party_llvm-project/build/include", 1048 "//third_party/third_party_llvm-project/llvm/include/", 1049 ] 1050 } else { 1051 if (is_mingw) { 1052 include_dirs = [ 1053 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_windows/llvm/include", 1054 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_windows/build/include", 1055 ] 1056 } else if (is_mac || is_ios) { 1057 if (host_cpu == "arm64") { 1058 include_dirs = [ 1059 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_arm64/llvm/include", 1060 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_arm64/build/include", 1061 ] 1062 } else { 1063 include_dirs = [ 1064 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_x64/llvm/include", 1065 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_darwin_x64/build/include", 1066 ] 1067 } 1068 } else { 1069 if (host_cpu == "arm64" && host_os == "linux") { 1070 if (current_os == "ohos") { 1071 include_dirs = [ 1072 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_aarch64/llvm/include", 1073 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_aarch64/build/include", 1074 ] 1075 } else { 1076 include_dirs = [ 1077 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_linux_aarch64/llvm/include", 1078 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_linux_aarch64/build/include", 1079 ] 1080 } 1081 } else { 1082 if (current_cpu == "arm64") { 1083 include_dirs = [ 1084 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_aarch64/llvm/include", 1085 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts_aarch64/build/include", 1086 ] 1087 } else { 1088 include_dirs = [ 1089 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts/llvm/include", 1090 "//prebuilts/ark_tools/ark_js_prebuilts/llvm_prebuilts/build/include", 1091 ] 1092 } 1093 } 1094 } 1095 } 1096 cflags_cc = [ "-DARK_GC_SUPPORT" ] 1097} 1098 1099if (is_mingw) { 1100 ecma_platform_source += [ 1101 "ecmascript/platform/common/dfx_crash_obj.cpp", 1102 "ecmascript/platform/windows/backtrace.cpp", 1103 "ecmascript/platform/windows/async_detect.cpp", 1104 "ecmascript/platform/windows/map.cpp", 1105 "ecmascript/platform/windows/file.cpp", 1106 "ecmascript/platform/windows/os.cpp", 1107 "ecmascript/platform/windows/time.cpp", 1108 "ecmascript/platform/windows/log.cpp", 1109 "ecmascript/platform/windows/aot_crash_info.cpp", 1110 "ecmascript/platform/windows/dfx_hisys_event.cpp", 1111 "ecmascript/platform/windows/pandafile.cpp", 1112 "ecmascript/platform/windows/module.cpp", 1113 "ecmascript/platform/common/ecma_context.cpp", 1114 "ecmascript/platform/common/parameters.cpp", 1115 ] 1116} else { 1117 ecma_platform_source += [ 1118 "ecmascript/platform/unix/file.cpp", 1119 "ecmascript/platform/unix/map.cpp", 1120 "ecmascript/platform/unix/time.cpp", 1121 "ecmascript/platform/unix/aot_crash_info.cpp", 1122 ] 1123 if (is_mac) { 1124 ecma_platform_source += [ 1125 "ecmascript/platform/common/dfx_crash_obj.cpp", 1126 "ecmascript/platform/unix/mac/os.cpp", 1127 "ecmascript/platform/unix/mac/backtrace.cpp", 1128 "ecmascript/platform/unix/mac/async_detect.cpp", 1129 "ecmascript/platform/unix/mac/log.cpp", 1130 "ecmascript/platform/unix/mac/dfx_hisys_event.cpp", 1131 "ecmascript/platform/unix/mac/pandafile.cpp", 1132 "ecmascript/platform/unix/mac/module.cpp", 1133 "ecmascript/platform/common/ecma_context.cpp", 1134 "ecmascript/platform/common/parameters.cpp", 1135 ] 1136 } else if (target_os == "ios") { 1137 ecma_platform_source += [ 1138 "ecmascript/platform/unix/mac/os.cpp", 1139 "ecmascript/platform/unix/mac/backtrace.cpp", 1140 "ecmascript/platform/unix/mac/async_detect.cpp", 1141 "ecmascript/platform/common/dfx_crash_obj.cpp", 1142 "ecmascript/platform/common/log.cpp", 1143 "ecmascript/platform/unix/mac/dfx_hisys_event.cpp", 1144 "ecmascript/platform/common/pandafile.cpp", 1145 "ecmascript/platform/common/module.cpp", 1146 "ecmascript/platform/common/ecma_context.cpp", 1147 "ecmascript/platform/common/parameters.cpp", 1148 ] 1149 } else if (is_ohos || target_os == "android") { 1150 ecma_platform_source += [ 1151 "ecmascript/platform/unix/linux/os.cpp", 1152 "ecmascript/platform/unix/ohos/backtrace.cpp", 1153 "ecmascript/platform/unix/ohos/async_detect.cpp", 1154 "ecmascript/platform/common/log.cpp", 1155 "ecmascript/platform/unix/ohos/memory.cpp", 1156 "ecmascript/platform/unix/ohos/dfx_hisys_event.cpp", 1157 "ecmascript/platform/common/module.cpp", 1158 ] 1159 1160 if (is_ohos) { 1161 ecma_platform_source += [ 1162 "ecmascript/platform/unix/ohos/pandafile.cpp", 1163 "ecmascript/platform/unix/ohos/ecma_context.cpp", 1164 "ecmascript/platform/unix/ohos/parameters.cpp", 1165 ] 1166 } else { 1167 ecma_platform_source += [ 1168 "ecmascript/platform/common/pandafile.cpp", 1169 "ecmascript/platform/common/ecma_context.cpp", 1170 "ecmascript/platform/common/parameters.cpp", 1171 ] 1172 } 1173 1174 if (is_ohos && !ark_standalone_build && 1175 (current_cpu == "arm64" || current_cpu == "arm")) { 1176 ecma_platform_source += 1177 [ "ecmascript/platform/unix/ohos/dfx_crash_obj.cpp" ] 1178 } else { 1179 ecma_platform_source += [ "ecmascript/platform/common/dfx_crash_obj.cpp" ] 1180 } 1181 } else if (is_linux) { 1182 ecma_platform_source += [ 1183 "ecmascript/platform/unix/linux/os.cpp", 1184 "ecmascript/platform/unix/linux/backtrace.cpp", 1185 "ecmascript/platform/unix/linux/async_detect.cpp", 1186 "ecmascript/platform/common/dfx_crash_obj.cpp", 1187 "ecmascript/platform/common/log.cpp", 1188 "ecmascript/platform/unix/linux/memory.cpp", 1189 "ecmascript/platform/unix/linux/dfx_hisys_event.cpp", 1190 "ecmascript/platform/unix/linux/pandafile.cpp", 1191 "ecmascript/platform/common/module.cpp", 1192 "ecmascript/platform/common/ecma_context.cpp", 1193 "ecmascript/platform/common/parameters.cpp", 1194 ] 1195 } else { 1196 print("Invalid os!") 1197 assert(false) 1198 } 1199} 1200 1201if (enable_target_compilation) { 1202 ecma_platform_source += [ "ecmascript/platform/unix/ohos/directory.cpp" ] 1203} else if (is_mingw) { 1204 ecma_platform_source += [ "ecmascript/platform/windows/directory.cpp" ] 1205} else { 1206 ecma_platform_source += [ "ecmascript/platform/unix/directory.cpp" ] 1207} 1208 1209libark_jsruntime_common_set("libark_jsruntime_set") { 1210} 1211 1212libark_jsruntime_common_set("libark_jsruntime_arm_set") { 1213 if (enable_sanitize) { 1214 sanitize = { 1215 ubsan = true 1216 } 1217 } 1218} 1219 1220libark_jsruntime_intl_common_set("libark_js_intl_set") { 1221} 1222 1223libark_jsruntime_intl_common_set("libark_js_intl_arm_set") { 1224 if (enable_sanitize) { 1225 sanitize = { 1226 ubsan = true 1227 } 1228 } 1229} 1230 1231config("ark_jsruntime_test_nolto") { 1232 cflags_cc = [ "-fno-lto" ] 1233} 1234 1235ohos_source_set("libark_jsruntime_test_set") { 1236 stack_protector_ret = false 1237 sources = ecma_source 1238 sources += intl_sources 1239 sources += ecma_profiler_source 1240 sources += ecma_debugger_source 1241 sources += hitrace_scope_source 1242 sources += ecma_platform_source 1243 1244 defines = [ "OHOS_UNIT_TEST" ] 1245 1246 if (is_ohos) { 1247 sources += ecma_stackinfo_source 1248 } 1249 1250 if (is_ohos && is_standard_system) { 1251 stub_an_file_path = 1252 "${arkcompiler_lib64_path}/${arkcompiler_relative_lib_path}/stub.an" 1253 } else { 1254 stub_an_file_path = 1255 rebase_path("$root_gen_dir/arkcompiler/ets_runtime/stub.an") 1256 } 1257 defines += [ "STUB_AN_FILE=\"${stub_an_file_path}\"" ] 1258 1259 deps = [] 1260 external_deps = [ 1261 "libuv:uv", 1262 "zlib:libz", 1263 ] 1264 if (enable_hilog) { 1265 external_deps += [ "hilog:libhilog" ] 1266 } 1267 1268 if (defined(is_arkui_x) && is_arkui_x) { 1269 deps += [ 1270 "$ark_third_party_root/icu/icu4c:static_icui18n", 1271 "$ark_third_party_root/icu/icu4c:static_icuuc", 1272 ] 1273 } else { 1274 external_deps += [ 1275 "icu:shared_icui18n", 1276 "icu:shared_icuuc", 1277 ] 1278 } 1279 1280 if (!is_arkui_x) { 1281 external_deps += [ "runtime_core:arkfile_header_deps" ] 1282 } else { 1283 deps += [ "$ark_root/libpandafile:arkfile_header_deps" ] 1284 } 1285 1286 if (enable_coverage) { 1287 ldflags = [ "--coverage" ] 1288 cflags_cc = [ "--coverage" ] 1289 } 1290 1291 if ((current_cpu == "amd64" || current_cpu == "x64" || 1292 current_cpu == "x86_64" || current_cpu == "arm64") && !is_mingw && 1293 !is_mac && target_os != "ios") { 1294 deps += [ "ecmascript/compiler:libark_stub_set" ] 1295 } else { 1296 deps += [ "$js_root/ecmascript/compiler:libark_mock_stub_set" ] 1297 } 1298 1299 if (enable_handle_leak_detect) { 1300 defines += [ "ENABLE_LOCAL_HANDLE_LEAK_DETECT" ] 1301 } 1302 1303 public_configs = [ "$js_root:ark_jsruntime_public_config" ] 1304 public_configs += [ ":include_llvm" ] 1305 1306 configs = [ 1307 "$js_root:ark_jsruntime_common_config", 1308 "$js_root:asm_interp_enable_config", 1309 "$js_root:icu_path_test_config", 1310 "$js_root:ark_jsruntime_test_nolto", 1311 ] 1312 1313 if (enable_target_compilation) { 1314 external_deps += [ "c_utils:utils" ] 1315 } 1316 1317 # hiviewdfx libraries 1318 external_deps += hiviewdfx_ext_deps 1319 deps += hiviewdfx_deps 1320 part_name = "ets_runtime" 1321 subsystem_name = "arkcompiler" 1322} 1323 1324ohos_source_set("libark_jsruntime_static") { 1325 stack_protector_ret = false 1326 if (enable_sanitize) { 1327 sanitize = { 1328 ubsan = true 1329 } 1330 } 1331 1332 if (is_ohos && is_standard_system) { 1333 deps = [ 1334 ":libark_js_intl_arm_set", 1335 ":libark_jsruntime_arm_set", 1336 ] 1337 } else { 1338 # in this case libark_jsruntime_arm_set and libark_jsruntime_set are identical 1339 deps = [ 1340 ":libark_js_intl_set", 1341 ":libark_jsruntime_set", 1342 ] 1343 } 1344 external_deps = [] 1345 if (!is_arkui_x) { 1346 external_deps += [ "runtime_core:arkfile_header_deps" ] 1347 } else { 1348 deps += [ "$ark_root/libpandafile:arkfile_header_deps" ] 1349 all_dependent_configs = [ ":ark_jsruntime_public_config" ] 1350 } 1351 1352 public_configs = [ "$js_root:ark_jsruntime_public_config" ] 1353 1354 if (!is_ohos) { 1355 if ((current_cpu == "amd64" || current_cpu == "x64" || 1356 current_cpu == "x86_64" || current_cpu == "arm64") && !is_mingw && 1357 !is_mac && target_os != "ios") { 1358 deps += [ "ecmascript/compiler:libark_stub_set" ] 1359 } else { 1360 deps += [ "$js_root/ecmascript/compiler:libark_mock_stub_set" ] 1361 } 1362 } 1363 part_name = "ets_runtime" 1364 subsystem_name = "arkcompiler" 1365} 1366 1367config("arkjs_runtime_lto_link_config") { 1368 ldflags = [] 1369 if (!ark_standalone_build && is_ohos && enhanced_opt && is_clang && 1370 (target_cpu == "arm" || target_cpu == "arm64")) { 1371 if (ets_runtime_feature_enable_bsymbolic) { 1372 ldflags += [ "-Wl,-Bsymbolic" ] 1373 } 1374 if (ets_runtime_feature_enable_pgo && enable_enhanced_opt) { 1375 ldflags += [ "-Wl,--aarch64-inline-plt" ] 1376 } 1377 } 1378} 1379 1380ohos_shared_library("libark_jsruntime") { 1381 stack_protector_ret = false 1382 if (enable_sanitize) { 1383 sanitize = { 1384 ubsan = true 1385 } 1386 } 1387 1388 deps = [ ":libark_jsruntime_static" ] 1389 external_deps = [] 1390 if (is_arkui_x && target_os == "ios") { 1391 deps += [ "$ark_third_party_root/bounds_checking_function:libsec_static" ] 1392 } else { 1393 external_deps += [ "bounds_checking_function:libsec_shared" ] 1394 } 1395 1396 if (!is_arkui_x) { 1397 external_deps += [ "runtime_core:libarkfile_runtime_static" ] 1398 } else { 1399 deps += [ "$ark_root/libpandafile:libarkfile_runtime_static" ] 1400 } 1401 1402 all_dependent_configs = [ ":ark_jsruntime_public_config" ] 1403 public_configs = [ ":ark_jsruntime_public_config" ] 1404 1405 if (is_ohos && is_standard_system && !is_debug) { 1406 version_script = "libark_jsruntime.map" 1407 } 1408 1409 # hiviewdfx libraries 1410 external_deps += hiviewdfx_ext_deps 1411 deps += hiviewdfx_deps 1412 1413 if (!enable_ark_intl) { 1414 external_deps += [ "i18n:intl_util" ] 1415 } 1416 1417 install_enable = true 1418 1419 if (!is_mingw && !is_mac) { 1420 output_extension = "so" 1421 } 1422 if (!is_standard_system) { 1423 relative_install_dir = "ark" 1424 } 1425 1426 if (target_os == "android" && !ark_standalone_build) { 1427 libs = [ "log" ] 1428 version_script = "libark_jsruntime.map" 1429 } 1430 if (ark_standalone_build || (defined(is_arkui_x) && is_arkui_x)) { 1431 deps += [ 1432 "$ark_third_party_root/icu/icu4c:static_icui18n", 1433 "$ark_third_party_root/icu/icu4c:static_icuuc", 1434 ] 1435 } else { 1436 public_external_deps = [ 1437 "icu:shared_icui18n", 1438 "icu:shared_icuuc", 1439 ] 1440 } 1441 innerapi_tags = [ "platformsdk_indirect" ] 1442 part_name = "ets_runtime" 1443 subsystem_name = "arkcompiler" 1444 1445 configs = [ ":arkjs_runtime_lto_link_config" ] 1446} 1447 1448ohos_shared_library("libark_jsruntime_test") { 1449 testonly = true 1450 stack_protector_ret = false 1451 deps = [ ":libark_jsruntime_test_set" ] 1452 public_configs = [ "$js_root:ark_jsruntime_public_config" ] 1453 public_configs += [ ":include_llvm" ] 1454 1455 if (!ark_standalone_build) { 1456 public_external_deps = [ 1457 "runtime_core:libarkfile_runtime_static", 1458 "zlib:libz", 1459 ] 1460 } else { 1461 external_deps = [ 1462 "runtime_core:libarkfile_runtime_static", 1463 "zlib:libz", 1464 ] 1465 } 1466 1467 ldflags = [] 1468 if (enable_coverage) { 1469 ldflags += [ "--coverage" ] 1470 cflags_cc = [ "--coverage" ] 1471 } 1472 if (!ark_standalone_build) { 1473 ldflags += [ "-Wl,--lto-O0" ] 1474 } 1475 1476 install_enable = false 1477 if (!is_mingw && !is_mac) { 1478 output_extension = "so" 1479 } 1480 1481 subsystem_name = "test" 1482} 1483 1484ohos_prebuilt_etc("app_aot_jit_enable_list") { 1485 relative_install_dir = "ark" 1486 if (ets_runtime_feature_enable_list) { 1487 source = "$js_root/ecmascript/ohos/app_aot_jit_enable_list.conf" 1488 } else { 1489 source = "$js_root/ecmascript/ohos/app_aot_jit_enable_list_default.conf" 1490 } 1491 1492 # Set the subsystem name 1493 part_name = "ets_runtime" 1494 subsystem_name = "arkcompiler" 1495} 1496 1497js_type_metadata_sources = [ 1498 "ecmascript/js_type_metadata/accessor_data.json", 1499 "ecmascript/js_type_metadata/aot_literal_info.json", 1500 "ecmascript/js_type_metadata/async_generator_request.json", 1501 "ecmascript/js_type_metadata/async_iterator_record.json", 1502 "ecmascript/js_type_metadata/bigint.json", 1503 "ecmascript/js_type_metadata/byte_array.json", 1504 "ecmascript/js_type_metadata/cell_record.json", 1505 "ecmascript/js_type_metadata/class_info_extractor.json", 1506 "ecmascript/js_type_metadata/class_literal.json", 1507 "ecmascript/js_type_metadata/completion_record.json", 1508 "ecmascript/js_type_metadata/constant_pool.json", 1509 "ecmascript/js_type_metadata/constant_string.json", 1510 "ecmascript/js_type_metadata/cow_mutant_tagged_array.json", 1511 "ecmascript/js_type_metadata/cow_tagged_array.json", 1512 "ecmascript/js_type_metadata/dictionary_layout.json", 1513 "ecmascript/js_type_metadata/ecma_object.json", 1514 "ecmascript/js_type_metadata/ecma_string.json", 1515 "ecmascript/js_type_metadata/extra_profile_type_info.json", 1516 "ecmascript/js_type_metadata/function_template.json", 1517 "ecmascript/js_type_metadata/global_env.json", 1518 "ecmascript/js_type_metadata/hclass.json", 1519 "ecmascript/js_type_metadata/importentry_record.json", 1520 "ecmascript/js_type_metadata/indirect_exportentry_record.json", 1521 "ecmascript/js_type_metadata/internal_accessor.json", 1522 "ecmascript/js_type_metadata/js_aggregate_error.json", 1523 "ecmascript/js_type_metadata/js_api_array_list.json", 1524 "ecmascript/js_type_metadata/js_api_arraylist_iterator.json", 1525 "ecmascript/js_type_metadata/js_api_bitvector.json", 1526 "ecmascript/js_type_metadata/js_api_bitvector_iterator.json", 1527 "ecmascript/js_type_metadata/js_api_deque.json", 1528 "ecmascript/js_type_metadata/js_api_deque_iterator.json", 1529 "ecmascript/js_type_metadata/js_api_hash_map.json", 1530 "ecmascript/js_type_metadata/js_api_hash_set.json", 1531 "ecmascript/js_type_metadata/js_api_hashmap_iterator.json", 1532 "ecmascript/js_type_metadata/js_api_hashset_iterator.json", 1533 "ecmascript/js_type_metadata/js_api_light_weight_map.json", 1534 "ecmascript/js_type_metadata/js_api_light_weight_map_iterator.json", 1535 "ecmascript/js_type_metadata/js_api_light_weight_set.json", 1536 "ecmascript/js_type_metadata/js_api_light_weight_set_iterator.json", 1537 "ecmascript/js_type_metadata/js_api_linked_list.json", 1538 "ecmascript/js_type_metadata/js_api_linked_list_iterator.json", 1539 "ecmascript/js_type_metadata/js_api_list.json", 1540 "ecmascript/js_type_metadata/js_api_list_iterator.json", 1541 "ecmascript/js_type_metadata/js_api_plain_array.json", 1542 "ecmascript/js_type_metadata/js_api_plain_array_iterator.json", 1543 "ecmascript/js_type_metadata/js_api_queue.json", 1544 "ecmascript/js_type_metadata/js_api_queue_iterator.json", 1545 "ecmascript/js_type_metadata/js_api_stack.json", 1546 "ecmascript/js_type_metadata/js_api_stack_iterator.json", 1547 "ecmascript/js_type_metadata/js_api_tree_map.json", 1548 "ecmascript/js_type_metadata/js_api_tree_set.json", 1549 "ecmascript/js_type_metadata/js_api_treemap_iterator.json", 1550 "ecmascript/js_type_metadata/js_api_treeset_iterator.json", 1551 "ecmascript/js_type_metadata/js_api_vector.json", 1552 "ecmascript/js_type_metadata/js_api_vector_iterator.json", 1553 "ecmascript/js_type_metadata/js_arguments.json", 1554 "ecmascript/js_type_metadata/js_array.json", 1555 "ecmascript/js_type_metadata/js_array_buffer.json", 1556 "ecmascript/js_type_metadata/js_array_iterator.json", 1557 "ecmascript/js_type_metadata/js_async_await_status_function.json", 1558 "ecmascript/js_type_metadata/js_async_from_sync_iter_unwarp_function.json", 1559 "ecmascript/js_type_metadata/js_async_from_sync_iterator.json", 1560 "ecmascript/js_type_metadata/js_async_func_object.json", 1561 "ecmascript/js_type_metadata/js_async_function.json", 1562 "ecmascript/js_type_metadata/js_async_generator_function.json", 1563 "ecmascript/js_type_metadata/js_async_generator_object.json", 1564 "ecmascript/js_type_metadata/js_async_generator_resume_next.json", 1565 "ecmascript/js_type_metadata/js_async_module_fulfilled_function.json", 1566 "ecmascript/js_type_metadata/js_async_module_rejected_function.json", 1567 "ecmascript/js_type_metadata/js_asynciterator.json", 1568 "ecmascript/js_type_metadata/js_bigint64_array.json", 1569 "ecmascript/js_type_metadata/js_biguint64_array.json", 1570 "ecmascript/js_type_metadata/js_bound_function.json", 1571 "ecmascript/js_type_metadata/js_cjs_exports.json", 1572 "ecmascript/js_type_metadata/js_cjs_module.json", 1573 "ecmascript/js_type_metadata/js_cjs_require.json", 1574 "ecmascript/js_type_metadata/js_collator.json", 1575 "ecmascript/js_type_metadata/js_data_view.json", 1576 "ecmascript/js_type_metadata/js_date.json", 1577 "ecmascript/js_type_metadata/js_date_time_format.json", 1578 "ecmascript/js_type_metadata/js_displaynames.json", 1579 "ecmascript/js_type_metadata/js_error.json", 1580 "ecmascript/js_type_metadata/js_eval_error.json", 1581 "ecmascript/js_type_metadata/js_finalization_registry.json", 1582 "ecmascript/js_type_metadata/js_float32_array.json", 1583 "ecmascript/js_type_metadata/js_float64_array.json", 1584 "ecmascript/js_type_metadata/js_forin_iterator.json", 1585 "ecmascript/js_type_metadata/js_function.json", 1586 "ecmascript/js_type_metadata/js_function_base.json", 1587 "ecmascript/js_type_metadata/js_generator_context.json", 1588 "ecmascript/js_type_metadata/js_generator_function.json", 1589 "ecmascript/js_type_metadata/js_generator_object.json", 1590 "ecmascript/js_type_metadata/js_global_object.json", 1591 "ecmascript/js_type_metadata/js_int16_array.json", 1592 "ecmascript/js_type_metadata/js_int32_array.json", 1593 "ecmascript/js_type_metadata/js_int8_array.json", 1594 "ecmascript/js_type_metadata/js_intl.json", 1595 "ecmascript/js_type_metadata/js_intl_bound_function.json", 1596 "ecmascript/js_type_metadata/js_iterator.json", 1597 "ecmascript/js_type_metadata/js_list_format.json", 1598 "ecmascript/js_type_metadata/js_locale.json", 1599 "ecmascript/js_type_metadata/js_map.json", 1600 "ecmascript/js_type_metadata/js_map_iterator.json", 1601 "ecmascript/js_type_metadata/js_module_namespace.json", 1602 "ecmascript/js_type_metadata/js_native_pointer.json", 1603 "ecmascript/js_type_metadata/js_number_format.json", 1604 "ecmascript/js_type_metadata/js_object.json", 1605 "ecmascript/js_type_metadata/js_oom_error.json", 1606 "ecmascript/js_type_metadata/js_plural_rules.json", 1607 "ecmascript/js_type_metadata/js_primitive_ref.json", 1608 "ecmascript/js_type_metadata/js_promise.json", 1609 "ecmascript/js_type_metadata/js_promise_all_resolve_element_function.json", 1610 "ecmascript/js_type_metadata/js_promise_all_settled_element_function.json", 1611 "ecmascript/js_type_metadata/js_promise_any_reject_element_function.json", 1612 "ecmascript/js_type_metadata/js_promise_executor_function.json", 1613 "ecmascript/js_type_metadata/js_promise_finally_function.json", 1614 "ecmascript/js_type_metadata/js_promise_reactions_function.json", 1615 "ecmascript/js_type_metadata/js_promise_value_thunk_or_thrower_function.json", 1616 "ecmascript/js_type_metadata/js_proxy.json", 1617 "ecmascript/js_type_metadata/js_proxy_revoc_function.json", 1618 "ecmascript/js_type_metadata/js_range_error.json", 1619 "ecmascript/js_type_metadata/js_realm.json", 1620 "ecmascript/js_type_metadata/js_reference_error.json", 1621 "ecmascript/js_type_metadata/js_reg_exp.json", 1622 "ecmascript/js_type_metadata/js_reg_exp_iterator.json", 1623 "ecmascript/js_type_metadata/js_relative_time_format.json", 1624 "ecmascript/js_type_metadata/js_segment_iterator.json", 1625 "ecmascript/js_type_metadata/js_segmenter.json", 1626 "ecmascript/js_type_metadata/js_segments.json", 1627 "ecmascript/js_type_metadata/js_sendable_array_buffer.json", 1628 "ecmascript/js_type_metadata/js_set.json", 1629 "ecmascript/js_type_metadata/js_set_iterator.json", 1630 "ecmascript/js_type_metadata/js_shared_array.json", 1631 "ecmascript/js_type_metadata/js_shared_array_buffer.json", 1632 "ecmascript/js_type_metadata/js_shared_array_iterator.json", 1633 "ecmascript/js_type_metadata/js_shared_async_function.json", 1634 "ecmascript/js_type_metadata/js_shared_bigint64_array.json", 1635 "ecmascript/js_type_metadata/js_shared_biguint64_array.json", 1636 "ecmascript/js_type_metadata/js_shared_float32_array.json", 1637 "ecmascript/js_type_metadata/js_shared_float64_array.json", 1638 "ecmascript/js_type_metadata/js_shared_function.json", 1639 "ecmascript/js_type_metadata/js_shared_int16_array.json", 1640 "ecmascript/js_type_metadata/js_shared_int32_array.json", 1641 "ecmascript/js_type_metadata/js_shared_int8_array.json", 1642 "ecmascript/js_type_metadata/js_shared_map.json", 1643 "ecmascript/js_type_metadata/js_shared_map_iterator.json", 1644 "ecmascript/js_type_metadata/js_shared_object.json", 1645 "ecmascript/js_type_metadata/js_shared_set.json", 1646 "ecmascript/js_type_metadata/js_shared_set_iterator.json", 1647 "ecmascript/js_type_metadata/js_shared_typed_array.json", 1648 "ecmascript/js_type_metadata/js_shared_uint16_array.json", 1649 "ecmascript/js_type_metadata/js_shared_uint32_array.json", 1650 "ecmascript/js_type_metadata/js_shared_uint8_array.json", 1651 "ecmascript/js_type_metadata/js_shared_uint8_clamped_array.json", 1652 "ecmascript/js_type_metadata/js_string_iterator.json", 1653 "ecmascript/js_type_metadata/js_syntax_error.json", 1654 "ecmascript/js_type_metadata/js_termination_error.json", 1655 "ecmascript/js_type_metadata/js_type_error.json", 1656 "ecmascript/js_type_metadata/js_typed_array.json", 1657 "ecmascript/js_type_metadata/js_uint16_array.json", 1658 "ecmascript/js_type_metadata/js_uint32_array.json", 1659 "ecmascript/js_type_metadata/js_uint8_array.json", 1660 "ecmascript/js_type_metadata/js_uint8_clamped_array.json", 1661 "ecmascript/js_type_metadata/js_uri_error.json", 1662 "ecmascript/js_type_metadata/js_weak_map.json", 1663 "ecmascript/js_type_metadata/js_weak_ref.json", 1664 "ecmascript/js_type_metadata/js_weak_set.json", 1665 "ecmascript/js_type_metadata/lexical_env.json", 1666 "ecmascript/js_type_metadata/line_string.json", 1667 "ecmascript/js_type_metadata/linked_node.json", 1668 "ecmascript/js_type_metadata/local_exportentry_record.json", 1669 "ecmascript/js_type_metadata/machine_code_object.json", 1670 "ecmascript/js_type_metadata/marker_cell.json", 1671 "ecmascript/js_type_metadata/method.json", 1672 "ecmascript/js_type_metadata/micro_job_queue.json", 1673 "ecmascript/js_type_metadata/module_record.json", 1674 "ecmascript/js_type_metadata/mutant_tagged_array.json", 1675 "ecmascript/js_type_metadata/native_module_failure_info.json", 1676 "ecmascript/js_type_metadata/pending_job.json", 1677 "ecmascript/js_type_metadata/profile_type_info.json", 1678 "ecmascript/js_type_metadata/profile_type_info_cell_0.json", 1679 "ecmascript/js_type_metadata/profile_type_info_cell_1.json", 1680 "ecmascript/js_type_metadata/profile_type_info_cell_n.json", 1681 "ecmascript/js_type_metadata/program.json", 1682 "ecmascript/js_type_metadata/promise_capability.json", 1683 "ecmascript/js_type_metadata/promise_iterator_record.json", 1684 "ecmascript/js_type_metadata/promise_reactions.json", 1685 "ecmascript/js_type_metadata/promise_record.json", 1686 "ecmascript/js_type_metadata/property_box.json", 1687 "ecmascript/js_type_metadata/proto_change_marker.json", 1688 "ecmascript/js_type_metadata/prototype_handler.json", 1689 "ecmascript/js_type_metadata/prototype_info.json", 1690 "ecmascript/js_type_metadata/rb_treenode.json", 1691 "ecmascript/js_type_metadata/record.json", 1692 "ecmascript/js_type_metadata/resolvedbinding_record.json", 1693 "ecmascript/js_type_metadata/resolvedindexbinding_record.json", 1694 "ecmascript/js_type_metadata/resolvedrecordbinding_record.json", 1695 "ecmascript/js_type_metadata/resolvedrecordindexbinding_record.json", 1696 "ecmascript/js_type_metadata/resolving_functions_record.json", 1697 "ecmascript/js_type_metadata/sendable_env.json", 1698 "ecmascript/js_type_metadata/sliced_string.json", 1699 "ecmascript/js_type_metadata/source_text_module_record.json", 1700 "ecmascript/js_type_metadata/star_exportentry_record.json", 1701 "ecmascript/js_type_metadata/store_ts_handler.json", 1702 "ecmascript/js_type_metadata/symbol.json", 1703 "ecmascript/js_type_metadata/tagged_array.json", 1704 "ecmascript/js_type_metadata/tagged_dictionary.json", 1705 "ecmascript/js_type_metadata/tagged_node.json", 1706 "ecmascript/js_type_metadata/tagged_object.json", 1707 "ecmascript/js_type_metadata/template_map.json", 1708 "ecmascript/js_type_metadata/track_info.json", 1709 "ecmascript/js_type_metadata/trans_with_proto_handler.json", 1710 "ecmascript/js_type_metadata/transition_handler.json", 1711 "ecmascript/js_type_metadata/tree_string.json", 1712 "ecmascript/js_type_metadata/type_enums.json", 1713 "ecmascript/js_type_metadata/type_range.json", 1714 "ecmascript/js_type_metadata/vtable.json", 1715] 1716 1717action("gen_js_type_metadata") { 1718 inputs = js_type_metadata_sources 1719 1720 script = "$js_root/script/metadata_generate.py" 1721 1722 metadata_file_gen_dir = "$root_gen_dir/arkcompiler/ets_runtime" 1723 1724 args = [ 1725 "--enum", 1726 rebase_path("$js_root/ecmascript/js_type_metadata/type_enums.json"), 1727 "--metadata", 1728 rebase_path("$js_root/ecmascript/js_type_metadata"), 1729 "--output", 1730 rebase_path("$metadata_file_gen_dir/metadata.json"), 1731 "--version", 1732 "1.0.0", 1733 ] 1734 1735 outputs = [ "$metadata_file_gen_dir/metadata.json" ] 1736} 1737 1738ohos_prebuilt_shared_library("js_type_metadata") { 1739 deps = [ ":gen_js_type_metadata" ] 1740 source = "$root_gen_dir/arkcompiler/ets_runtime/metadata.json" 1741 1742 relative_install_dir = arkcompiler_relative_lib_path 1743 part_name = "ets_runtime" 1744 subsystem_name = "arkcompiler" 1745} 1746