mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-10-07 16:13:49 +00:00
039698f87e
To make the architecture more clear, any operations of Gates should be performed via GateAccessor rather than inovking the low-level interfaces of class Circuit. Therefore, most of these low level interfaces will be decorated with private, which are only allowed to access by the closed friend classes Verify and GateAccessor. Issue: https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/I5I6NC Signed-off-by: wuzhefeng <wuzhefeng1@huawei.com> Change-Id: I8892b803056c9f5f9bf7b6611e5304ac84c22e01 |
||
---|---|---|
.gitee | ||
build | ||
docs | ||
ecmascript | ||
script | ||
test | ||
.gitignore | ||
BUILD.gn | ||
bundle.json | ||
js_runtime_config.gni | ||
LICENSE | ||
OAT.xml | ||
README_zh.md | ||
README.md |
ArkCompiler JS Runtime
Introduction
ArkCompiler 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.
For more information, see ArkCompiler JS Runtime.
ArkCompiler JS Runtime architecture
Directory Structure
/arkcompiler/ets_runtime
├─ ecmascript # Implementation of ArkCompiler JS Runtime, including the ECMAScript library, interpreter, and memory management
│ ├─ base # Base helper class
│ ├─ builtins # ECMAScript libraries
│ ├─ compiler # JS compiler
│ ├─ containers # Non-ECMAScript containers
│ ├─ dfx # Memory and profiling tool
│ ├─ ic # Inline cache module
│ ├─ interpreter # JS interpreter
│ ├─ jobs # Queue of jobs
│ ├─ js_vm # Command line tool
│ ├─ jspandafile # abc file management module
│ ├─ mem # Memory management module
│ ├─ module # ECMAScript module
│ ├─ napi # C++ API module
│ ├─ taskpool # Task pool
│ ├─ regexp # Regular expression engine module
│ ├─ snapshot # Snapshot module
│ ├─ stubs # Runtime stub functions
│ ├─ tests # Unit test cases
│ ├─ tooling # JS debugger
│ ├─ trampoline # Trampoline function
│ ├─ ts_type # TS type management module
└─ test # Module test cases
Constraints
- Only the ArkCompiler bytecode files generated by ts2abc, which is the ArkCompiler JS frontend toolchain, can be run.
- Only the ES2015 standard and strict modes are supported.
- Functions cannot be dynamically created using strings, such as new Function("console.log(1);")).
Building
$./build.sh --product-name hispark_taurus_standard --build-target ark_js_host_linux_tools_packages
Available APIs
See NAPI.
Usage
For details about how to generate JS bytecodes, see Using the Toolchain.
To run bytecodes:
LD_LIBRARY_PATH=out/hispark_taurus/clang_x64/ark/ark:out/hispark_taurus/clang_x64/ark/ark_js_runtime:out/hispark_taurus/clang_x64/thirdparty/icu:prebuilts/clang/ohos/linux-x86_64/llvm/lib ./out/hispark_taurus/clang_x64/ark/ark_js_runtime/ark_js_vm helloworld.abc
For more information, see [ARK Runtime Usage Guide](https://gitee.com/openharmony/arkcompiler_ets_runtime/blob/master/ docs/ARK-Runtime-Usage-Guide.md).