French mathematician Fabrice Bellard, who founded the QEMU and FFmpeg projects and also created the fastest formula for calculating Pi and developed the image format , has released the first version of the new JavaScript engine . The engine is compact and designed for embedding in other systems. The project's code is written in C and is distributed under the MIT license. A WebAssembly-compiled version of the engine, suitable for running in browsers, is also available through Emscripten.
JavaScript implementation of the ES2019 specification, including modules, asynchronous generators, and proxies. Optionally, it supports non-standard mathematical features for JavaScript, such as BigInt and BigFloat types, as well as . In terms of performance, QuickJS significantly outperforms its counterparts, for example, in the
bench-v8 test, it surpasses the engine me 35%, më shumë se dy herë, tri herë, dhe by seven times.
In addition to the library for embedding the engine in applications, the project also offers the qjs interpreter, which can be used to run JavaScript code from the command line. Moreover, the qjsc compiler is available, capable of generating executable files for standalone use without external dependencies.
Karakteristikat kryesore:
- Compactness and ease of embedding in other projects. The code consists of only a few C files, which do not require external dependencies for compilation. The compiled simplest application occupies about 190 KB;
- Very high performance and low startup time. Passing 56 thousand compatibility tests with ECMAScript takes about 100 seconds running on a single core of a regular desktop PC. Runtime initialization takes less than 300 microseconds;
- Almost complete support for the ES2019 specification and full support for application 'B', defining components for compatibility with older web applications;
- Complete passing of all tests from the ECMAScript Test Suite;
- Support for compiling JavaScript code into executable files without external dependencies;
- A garbage collector based on reference counting without cyclic cleanup execution, resulting in predictable behavior and reduced memory consumption;
- A set of extensions for mathematical computations in JavaScript;
- Një tërësie për ekzekutimin e kodit në modalitetin e komandës, që mbështet ngjyrimin kontekstual të kodit;
- Një bibliotekë standarde kompakte me mbështetje për bibliotekat C.
Projekti gjithashtu zhvillon tri biblioteka shtesë C, të angazhuara në QuickJS dhe të përshtatshme për përdorim të veçantë:
- libregexp â njĂ« implementim i shpejtĂ« i shprehjeve tĂ« pĂ«rbashkĂ«ta, plotĂ«sisht i pĂ«rputhshĂ«m me specifikimin Javascript ES 2019;
- libunicode â njĂ« bibliotekĂ« kompakte pĂ«r punĂ«n me Unicode;
- libbf â njĂ« implementim i operacioneve me pikĂ« tĂ« lĂ«ngshme tĂ« saktĂ«sisĂ« sĂ« rastĂ«sishme dhe funksioneve transcedentale me rrethim nga ana e saktĂ«.
Burimi: opennet.ru
