mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-11-23 10:09:54 +00:00
52a2b0f777
Signed-off-by: wupengyong <wupengyong@huawei.com> Change-Id: Id40e77ef79c6dd1882d0f7c2c68f7c0fba402333 |
||
---|---|---|
docs | ||
ecmascript | ||
test | ||
.gitignore | ||
BUILD.gn | ||
js_runtime_config.gni | ||
LICENSE | ||
OAT.xml | ||
ohos.build | ||
README_zh.md | ||
README.md | ||
run_test262.sh |
ARK JS Runtime Module
Introduction
ARK JS Runtime is the runtime used by JavaScript JS
applications on OpenHarmony. It consists of the JS object allocator, garbage collector GC
, a standard library compliant with ECMAScript specifications, ARK bytecode interpreter, inline caches that store hidden classes, and the ARK Foreign Function Interface AFFI
.
For more infomation, see: ARK Runtime Subsystem.
ARK JS runtime architecture
Directory Structure
/ark/js_runtime
├─ ecmascript # JS object definition
│ ├─ base # Base helper class
│ ├─ builtins # ECMAScript library
│ ├─ class_linker # Bytecode pre-processing module
│ ├─ compiler # JS compiler
│ ├─ hprof # Memory analysis utility class
│ ├─ ic # Inline cache module
│ ├─ interpreter # JS interpreter
│ ├─ jobs # Queue of jobs
│ ├─ js_vm # ARK command line tool
│ ├─ mem # Memory management module
│ ├─ napi # External native interface
│ ├─ regexp # Regular expression engine module
│ ├─ snapshot/mem # Snapshot module
│ ├─ tests # Unit test cases
│ ├─ thread # Thread pool
│ ├─ tooling # JS debugger
│ └─ vmstat # Runtime status utility classes
└─ test # Module test cases
Constraints
- Only the bytecode file generated by the ARK JS frontend can be run.
- Only support ES2015 standard and strict mode ("use strict").
- Don't support dynamically create functions via string (e.g., new Function("console.log(1))).
Build
./build.sh --product-name Hi3516DV300 --build-target ark\_js\_runtime
Available APIs
For details, see NAPI.
Usage Guidelines
For details about how to generate JS bytecodes, see Using the Toolchain.
To run bytecodes:
cd out/release
LD\_LIBRARY\_PATH=clang\_x64/ark/ark\_js\_runtime:clang\_x64/ark/ark:clang\_x64/global/i18n:../../prebuilts/clang/ohos/linux-x86\_64/llvm/lib/
./clang\_x64/ark/ark\_js\_runtime/ark\_js\_vm helloworld.abc
For more infomation, please see: ARK-Runtime-Usage-Guide.