Go to file
zhangyukun8 25f6530062 Function ptr support pgo inline
1. Collect method id of calltarget when call js function
2. Load gt by method id from pgo
3. Set call insts' calltarget type
4. Fix process method bug
5. Support pgo-aot testcases
Issue:https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/I7NMOO?from=project-issue
Signed-off-by: zhangyukun8 <zhangyukun8@huawei.com>

Change-Id: Ib7e92ab1b529195367af16f923c2e620f40f8a36
2023-08-01 18:48:24 +08:00
.gitee refactor stl container 2022-04-06 16:05:22 +08:00
docs Imporve AOT Debugging Tools 2023-05-09 07:11:57 +08:00
ecmascript Function ptr support pgo inline 2023-08-01 18:48:24 +08:00
script support multi context 2023-07-03 21:30:19 +08:00
test Function ptr support pgo inline 2023-08-01 18:48:24 +08:00
tools/circuit_viewer ir关键字从配置文件读取 2023-07-26 09:59:39 +08:00
.gitignore Add TS Aot Test Framework 2022-04-25 21:28:10 +08:00
BUILD.gn Refactor module, modify path_helper[part 1] 2023-07-14 14:51:21 +08:00
bundle.json Supplyment for componentization 2023-06-21 14:11:41 +08:00
js_runtime_config.gni Description:DFX hiloh/hitrace部件名整改 2023-06-20 14:18:16 +08:00
libark_jsruntime.map support WeakMap, WeakSet, DataView display 2023-07-11 16:55:25 +08:00
LICENSE add ark js_runtime 2021-09-05 16:05:06 +08:00
OAT.xml %TypedArray%.prototype.at 2023-07-03 23:23:32 -07:00
README_zh.md Modify ets_runtime readme.md 2023-05-09 15:05:35 +08:00
README.md Modify ets_runtime readme.md 2023-05-09 15:05:35 +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 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