|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | - | - |
| compiler_service/ | | 06-May-2025 | - | 5,355 | 3,881 |
| docs/ | | 06-May-2025 | - | 1,461 | 1,151 |
| ecmascript/ | | 06-May-2025 | - | 804,018 | 656,584 |
| etc/ | | 06-May-2025 | - | 49 | 44 |
| script/ | | 06-May-2025 | - | 495 | 384 |
| test/ | | 06-May-2025 | - | 287,932 | 219,004 |
| tools/ | | 06-May-2025 | - | 10,061 | 8,740 |
| .gitignore | D | 06-May-2025 | 233 | 21 | 20 |
| BUILD.gn | D | 06-May-2025 | 59.9 KiB | 1,746 | 1,614 |
| CODEOWNERS | D | 06-May-2025 | 613 | 17 | 14 |
| LICENSE | D | 06-May-2025 | 10.1 KiB | 177 | 150 |
| OAT.xml | D | 06-May-2025 | 6.4 KiB | 91 | 37 |
| README.md | D | 06-May-2025 | 4.6 KiB | 105 | 81 |
| README_zh.md | D | 06-May-2025 | 4.9 KiB | 103 | 80 |
| REVIEWERS | D | 06-May-2025 | 2.8 KiB | 50 | 46 |
| bundle.json | D | 06-May-2025 | 3.7 KiB | 111 | 110 |
| hisysevent.yaml | D | 06-May-2025 | 7 KiB | 107 | 89 |
| js_runtime_config.gni | D | 06-May-2025 | 10.1 KiB | 352 | 300 |
| libark_jsruntime.map | D | 06-May-2025 | 19.4 KiB | 409 | 401 |
README.md
1# ArkCompiler JS Runtime
2
3- [ArkCompiler JS Runtime](#ArkCompiler_JS_Runtime)
4 - [Introduction](#Introduction)
5 - [Directory Structure](#Directory_Structure)
6 - [Constraints](#Constraints)
7 - [Building](#Building)
8 - [Available APIs](#Available_APIs)
9 - [Usage](#Usage)
10 - [Repositories Involved](#Repositories_Involved)
11
12### Introduction
13
14ArkCompiler JS Runtime is the default JS runtime on OpenHarmony. It supports ECMAScript libraries and efficient container libraries. It also provides a set of native APIs for C++ and JS interaction and a variety of garbage collectors that features high performance.
15
16For more information, see [ArkCompiler JS Runtime](https://gitee.com/openharmony/docs/blob/master/en/readme/ARK-Runtime-Subsystem.md).
17
18**ArkCompiler JS Runtime architecture**
19
20
21
22## Directory Structure
23
24```
25/arkcompiler/ets_runtime
26├─ ecmascript # Implementation of ArkCompiler JS Runtime, including the ECMAScript library, interpreter, and memory management
27│ ├─ base # Base helper class
28│ ├─ builtins # ECMAScript libraries
29│ ├─ checkpoint # Virtual machine safepoint
30│ ├─ compiler # JS compiler
31│ ├─ containers # Non-ECMAScript containers
32│ ├─ daemon # Shared GC concurrent thread
33│ ├─ debugger # JS debugger
34│ ├─ deoptimizer # Compiler deoptimization
35│ ├─ dfx # Memory and profiling tool
36│ ├─ extractortool # Sourcemap parsing
37│ ├─ ic # Inline cache module
38│ ├─ interpreter # JS interpreter
39│ ├─ intl # Internationalization
40│ ├─ jit # Jit compiler
41│ ├─ jobs # Queue of jobs
42│ ├─ js_api # Non-ecma standard object model
43│ ├─ js_type_metadata # Object layout file
44│ ├─ js_vm # Command line tool
45│ ├─ jspandafile # abc file management module
46│ ├─ mem # Memory management module
47│ ├─ module # ECMAScript module
48│ ├─ napi # C++ API module
49│ ├─ ohos # System-related logic
50│ ├─ patch # Cold patch, hot patch
51│ ├─ pgo_profiler # A performance analyzer based on profile-guided optimization (pgo), used for performance analysis and optimization
52│ ├─ platform # Cross-platform processing
53│ ├─ quick_fix # Quickly fix the command-line tool
54│ ├─ regexp # Regular expression engine module
55│ ├─ require # Commonjs module specification
56│ ├─ sdk # Integration of sdk tools
57│ ├─ serializer # Serialization
58│ ├─ shared_mm # Shared memory management module
59│ ├─ shared_objects # Implementation of shared objects
60│ ├─ snapshot # Snapshot module
61│ ├─ stackmap # Location information of active variables
62│ ├─ stubs # Runtime stub functions
63│ ├─ taskpool # Task pool
64│ ├─ tests # Unit test cases
65│ ├─ ts_types # TS type management module
66└─ test # Module test cases
67```
68
69## Constraints
70
71* Only the ArkCompiler bytecode files generated by ts2abc, which is the ArkCompiler JS frontend toolchain, can be run.
72* Only the ES2021 standard and strict modes are supported.
73* Functions cannot be dynamically created using strings, such as new Function("console.log(1);")).
74
75## Building
76
77```
78$./build.sh --product-name hispark_taurus_standard --build-target ark_js_host_linux_tools_packages
79```
80
81### Available APIs
82
83See [NAPI](https://gitee.com/openharmony/arkui_napi/blob/master/README.md).
84
85### Usage
86
87For details about how to generate JS bytecodes, see [Using the Toolchain](docs/using-the-toolchain.md).
88
89To run bytecodes:
90```
91LD_LIBRARY_PATH=out/hispark_taurus/clang_x64/arkcompiler/ets_runtime:out/hispark_taurus/clang_x64/thirdparty/icu:prebuilts/clang/ohos/linux-x86_64/llvm/lib ./out/hispark_taurus/clang_x64/arkcompiler/ets_runtime/ark_js_vm helloworld.abc
92
93```
94
95For more information, see [ARK Runtime Usage Guide](https://gitee.com/openharmony/arkcompiler_ets_runtime/blob/master/
96docs/ARK-Runtime-Usage-Guide.md).
97
98## Repositories Involved
99
100[arkcompiler\_runtime\_core](https://gitee.com/openharmony/arkcompiler_runtime_core)
101
102**[arkcompiler\_ets\_runtime](https://gitee.com/openharmony/arkcompiler_ets_runtime)**
103
104[arkcompiler\_ets\_frontend](https://gitee.com/openharmony/arkcompiler_ets_frontend)
105