Go to file
ding 72f10c1c80 Type Adapt new Literal Mechanism
In order to arrange the abc's literal better in merge scene, change the
reference from index to offset. Need some adaption in type system.
Also a little bit of Module literal change.

Issue:https://gitee.com/openharmony/arkcompiler_runtime_core/issues/I5T93S

Signed-off-by: ding <dingding5@huawei.com>
Change-Id: Ib87fb4cc734aeef0c9dd22c25ae04cb8e2f83d0d
2022-09-30 17:17:39 +08:00
.gitee refactor stl container 2022-04-06 16:05:22 +08:00
docs Modification of ets_runtime docs 2022-09-20 11:04:32 +08:00
ecmascript Type Adapt new Literal Mechanism 2022-09-30 17:17:39 +08:00
script Modify typeinfer tests 2022-07-20 20:34:58 +08:00
test !2535 bugfix TypedArray::Set handle 2022-09-29 14:24:19 +00:00
.gitignore Add TS Aot Test Framework 2022-04-25 21:28:10 +08:00
BUILD.gn Enable test on TypeInfer UT 2022-09-28 22:59:48 +08:00
bundle.json Descriptor: Delete unused target 2022-07-30 23:03:03 +08:00
js_runtime_config.gni Merge branch 'master' into minor_change 2022-09-15 17:17:57 +08:00
LICENSE add ark js_runtime 2021-09-05 16:05:06 +08:00
OAT.xml modify arkcompiler_ets_runtime path 2022-07-14 12:35:04 +08:00
README_zh.md fix documentation description error 2022-09-26 14:44:25 +08:00
README.md migrate tooling to toolchain 2022-09-22 20:33:49 +08:00

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
│   ├─ debugger           # 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).

Repositories Involved

arkcompiler_runtime_core

arkcompiler_ets_runtime

arkcompiler_ets_frontend