De Frânske wiskundige Fabrice Bellard, dy't de QEMU- en FFmpeg-projekten oprjochte, makke ek de rapste formule foar it berekkenjen fan it getal Pi en ûntwikkele it byldformaat , publisearre de earste release fan 'e nije JavaScript-motor . De motor is kompakt en ûntwurpen foar yntegraasje yn oare systemen. De projektkoade is skreaun yn C en wurdt ferspraat ûnder de MIT-lisinsje. In build fan 'e motor is ek beskikber, gearstald yn WebAssembly mei Emscripten en geskikt foar útfiering yn browsers.
JavaSkript ymplemintaasje ES2019-spesifikaasje, ynklusyf modules, asynchrone generators en proxy's. Net-standert wiskunde wurde opsjoneel stipe foar JavaSkript, lykas BigInt- en BigFloat-typen, lykas . De prestaasjes fan QuickJS binne signifikant beskikbere analogen, bygelyks, yn 'e test
bench-v8 is foarút fan 'e motor op 35%, mear as ferdûbele trije kear en sân kear.
Neist de bibleteek foar it ynbêdzjen fan de motor yn applikaasjes, biedt it projekt ek in qjs-interpreter, dy't brûkt wurde kin om JavaScript-koade út te fieren fanút de kommandorigel. Boppedat is de qjsc-kompiler beskikber, by steat om útfierbere bestannen te generearjen dy't geskikt binne foar stand-alone útfiering dy't gjin eksterne ôfhinklikens nedich binne.
Haadfunksjes:
- Kompakt en maklik te yntegrearjen yn oare projekten. De koade befettet mar in pear C-bestannen dy't gjin eksterne ôfhinklikens nedich binne foar montage. De ienfâldichste kompilearre applikaasje nimt sawat 190 KB;
- Hiel hege prestaasjes en koarte opstarttiid. It trochjaan fan 56 tûzen ECMAScript-kompatibiliteitstests nimt sawat 100 sekonden as it wurdt útfierd op ien kearn fan in gewoane buroblêd PC. Runtime inisjalisaasje nimt minder as 300 mikrosekonden;
- Hast folsleine stipe foar de ES2019-spesifikaasje en folsleine stipe foar Appendix B, dy't komponinten definiearret foar kompatibiliteit mei legacy webapplikaasjes;
- Folslein trochjaan fan alle tests fan 'e ECMAScript Test Suite;
- Stipe foar it kompilearjen fan Javascript-koade yn útfierbere bestannen sûnder eksterne ôfhinklikens;
- In garbage collector basearre op referinsje tellen sûnder cyclic cleaning, dy't tastien ús te berikken foarsisber gedrach en ferminderje ûnthâld konsumpsje;
- In set tafoegings foar wiskundige berekkeningen yn JavaSkript;
- In shell foar it útfieren fan koade yn kommandorigelmodus, stipet kontekstuele koade markearring;
- Kompakte standertbibleteek mei wrappers oer de C-bibleteek.
It projekt ûntwikkelet ek trije byhearrende C-biblioteken belutsen by QuickJS en geskikt foar yndividueel gebrûk:
- libregexp - snelle ymplemintaasje fan reguliere útdrukkingen, folslein kompatibel mei de Javascript ES 2019-spesifikaasje;
- libunicode - in kompakte bibleteek foar wurkjen mei Unicode;
- libbf - Ymplemintaasje fan willekeurige presys driuwende punt operaasjes en transzendintale funksjes mei eksakte rûning.
Boarne: opennet.ru
