Go to file
wangyuxin c0c996c356 Add boolean to number in debug
1. Add converting boolean to number processing in number retype pass when compiling aot in debug mode
2. Abort AOT compilation when a non-bool value triggers ConvertBoolToInt32

Issue:https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/IAX858

Signed-off-by: wangyuxin <wangyuxin53@huawei.com>
Change-Id: Ib74d441c402a6e9f72f83baa0d991ca901cfd1df
2024-10-28 09:39:30 +08:00
.gitee Reason:add checklist 2024-06-29 16:45:08 +08:00
compiler_service Verify parameter from bms 2024-10-26 16:56:22 +08:00
docs Add AOT doc description 2024-09-27 16:41:05 +08:00
ecmascript Add boolean to number in debug 2024-10-28 09:39:30 +08:00
etc [JIT] Add dumpobj for sync code 2024-09-14 09:15:28 +08:00
script 修改介绍 2024-10-16 16:20:29 +08:00
test Add boolean to number in debug 2024-10-28 09:39:30 +08:00
tools Modify code security specification alarm 2024-10-23 16:46:56 +08:00
.gitignore Add TS Aot Test Framework 2022-04-25 21:28:10 +08:00
BUILD.gn !9880 Support ohos target os for linux-aarch64 host 2024-10-24 06:03:15 +00:00
bundle.json Fix license name spell error in bundle.json 2024-10-16 11:43:13 +08:00
CODEOWNERS Display codeowners for hidden folders and files 2024-08-16 12:18:28 +03:00
hisysevent.yaml add jit event 2024-05-14 14:38:56 +08:00
js_runtime_config.gni JitFort开启CFI防护 2024-10-12 10:45:04 +08:00
libark_jsruntime.map !8461 Allocate memory to old space base on PGO 2024-10-22 22:10:00 +00:00
LICENSE add ark js_runtime 2021-09-05 16:05:06 +08:00
OAT.xml add ap parse code 2024-07-30 15:10:04 +08:00
README_zh.md Update Dead-link in docs 2023-11-01 11:24:56 +08:00
README.md Modify ets_runtime readme.md 2023-05-09 15:05:35 +08:00
REVIEWERS Update list of the reviewrs 2024-07-16 16:23:14 +03: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 ES2021 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/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

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