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