Optimized quickjs mantained by OpenWebF team.
In addition to the relevant features and optimizations in the TODO file, the more important optimizations are:
- Column number
- Basic Debugger API
- Poly IC
- Self Poly IC
- Prototype Poly IC
- Replace malloc To mimalloc
- Improve The Performance Of GC
In our plan, we first complete the above optimizations and then gradually add the remaining parts.
- Clone this repo and its submodules by doing
git clone --recursive <THIS_REPO_URL>
mkdir build
cd build
cmake ..
make -j4
you can find libquickjs.a
in lib folder and qjs
/ qjsc
/ run-test262
in the ./bin
folder (from the repo root).
> bash scripts/test.sh
It will output result like:
Result: 573/75124 errors, 1388 excluded, 7844 skipped, 573 new
- Apple M1 Pro
- macOS Monterey 12.2.1
- Clang 13.0.0 arm64-apple-darwin21.3.0
openwebf/quickjs (32acbde) | bellard/quickjs (3ab1c2b) | Improvement(%) | |
---|---|---|---|
DeltaBlue | 1382 | 1021 | +35.35 |
RayTrace | 1935 | 688 | +181.15 |
RegExp | 353 | 255 | +38.43 |
NavierStokes | 2756 | 2658 | +3.68 |
PdfJS | 4934 | 3692 | +33.64 |
Gameboy | 9948 | 9057 | +9.83 |
Box2D | 5264 | 4089 | +28.77 |
Typescript | 19108 | 13787 | +38.59 |
Total Score | 3262 | 2339 | +39.46 |
File Size | 1.5M | 1.3M | -15.38 |