A francia matematikus Fabrice Bellard, aki egykor létrehozta a QEMU és FFmpeg projekteket, valamint a Pi számának leggyorsabb kiszámítási képletét alkotta és létrehozta a képfájl-formátumot , közzétette az új JavaScript-motor első kiadását . A motor tömör és más rendszerekbe való beágyazásra lett kifejlesztve. A projekt kódja C nyelven íródott és MIT licenc alatt terjesztik. Ezen kívül elérhető a motor WebAssembly-re fordított változata Emscripten segítségével, amely böngészőkben való futásra alkalmas.
A JavaScript implementációja az ES2019 szabványt tartalmazza, beleértve a modulokat, aszinkron generátorokat és proxykat. Opcionálisan támogatja a nem szabványos matematikai JavaScript számára, mint például a BigInt és BigFloat típusok, valamint . Teljesítményben a QuickJS jelentősen a meglévő alternatívákat, például a bench-v8 tesztben 35%-kal megelőzi a
XS DukTape-t JerryScript-t MuJS-t A projekt kínál egy qjs nevű interpretert is, amely lehetővé teszi JavaScript kód futtatását parancssorból. Továbbá elérhető a qjsc fordító is, amely képes önálló végrehajtható fájlokat generálni külső függőségek nélkül.
Kompakt és könnyen beágyazható más projektekbe. A kód mindössze néhány C nyelvű fájlt tartalmaz, amelyek építéshez nem igényelnek külső függőségeket. A legkisebb kompakt alkalmazás körülbelül 190 Kb-ot foglal el;
Főbb jellemzők:
- Nagyon magas teljesítmény és alacsony indítási idő. A 56 ezer teszt végrehajtása az ECMAScript kompatibilitás alapelveivel körülbelül 100 másodpercet vesz igénybe egy szokásos asztali számítógép egy magján. A runtime inicializálás kevesebb mint 300 mikrosecondot igényel;
- Szinte teljes támogatás az ES2019 specifikációhoz és teljes támogatás az "B" alkalmazás számára, ami a régi webalkalmazásokkal való kompatibilitási összetevőket határoz meg;
- A teljes ECMAScript Test Suite összes tesztjének sikeres teljesítése;
- Támogatja a JavaScript kód végrehajtható fájlokká való fordítását külső függőségek nélkül;
- A hivatkozás-számlálás alapú szemétgyűjtő, amely megakadályozza a ciklikus tisztítás végrehajtását, lehetővé tette a kiszámítható viselkedést és a memóriafelhasználás csökkentését;
- Hivatkozás-számláláson alapuló szemétgyűjtő ciklikus tisztítási végrehajtás nélkül, amely előre látható működést és memóriafelhasználás csökkentést tett lehetővé;
- JavaScript nyelven végzett matematikai számításokhoz készült bővítménycsomag;
- Parancssori kódvégrehajtó környezet, amely támogatja a kód kiemelését;
- Kompakt standard könyvtár, amely C könyvtáron alapul.
A projekthez három kapcsolódó C könyvtár is tartozik, amelyek a QuickJS-ben használatosak és külön alkalmazásra is alkalmasak:
- libregexp — gyors, a Javascript ES 2019 specifikációjával teljes mértékben kompatibilis reguláris kifejezések megvalósítása;
- libunicode — kompakt könyvtár Unicode kezelésére;
- libbf — tetszőleges pontosságú lebegőpontos műveletek és transzcendens függvények megvalósítása pontos kerekítéssel.
Forrás: opennet.ru
