Matematicianul francez Fabrice Bellard, fondator al proiectelor QEMU și FFmpeg, care a creat cea mai rapidă formulă de calculare a numărului Pi și a dezvoltat un format de imagine , a publicat prima versiune a noului motor JavaScript . Motorul se distinge prin compactitate și este orientat spre integrarea în alte sisteme. Codul proiectului este scris în limbajul C și este distribuit sub licența MIT. Este, de asemenea, disponibilă o versiune a motorului, compilată în WebAssembly cu ajutorul Emscripten, adecvată pentru rulare în browsere.
Implementarea JavaScript specificației ES2019, inclusiv module, generatoare asincrone și proxys. Opțional, sunt acceptate tipuri matematice neoficiale pentru JavaScript, cum ar fi tipurile BigInt și BigFloat, precum și . În ceea ce privește performanța, QuickJS depășește considerabil bench-v8, depășind motorul
XS DukTape JerryScript MuJS Pe lângă biblioteca pentru integrarea motorului în aplicații, proiectul oferă, de asemenea, un interpret qjs, care poate fi folosit pentru a rula cod JavaScript din linia de comandă. Mai mult, este disponibil un compilator qjsc, capabil să genereze fișiere executabile care pot fi rulate în mod izolat, fără dependențe externe.
Compactitate și ușurință în integrarea în alte proiecte. Codul include doar câteva fișiere în limbajul C, care nu necesită dependențe externe pentru compilare. Aplicația compilată de bază ocupă aproximativ 190 KB;
Caracteristici principale:
- Performanță foarte ridicată și timp de inițializare redus. Rularea a 56 de mii de teste de compatibilitate cu ECMAScript durează aproximativ 100 de secunde pe un singur nucleu de PC desktop obișnuit. Inicializarea runtime durează mai puțin de 300 de microsecunde;
- Suport aproape complet pentru specificația ES2019 și suport complet pentru aplicația „B”, care definește componentele pentru compatibilitatea cu aplicațiile web mai vechi;
- Treceri complete ale tuturor testelor din setul ECMAScript Test Suite;
- Suport pentru compilarea codului JavaScript în fișiere executabile fără dependențe externe;
- Un colector de gunoi bazat pe numărarea referințelor, fără executarea curățării ciclice, care a permis obținerea unui comportament predictibil și reducerea consumului de memorie;
- Un colector de gunoi bazat pe numărarea referințelor, care evită executarea ciclică a curățării, permițând astfel obținerea unui comportament predictibil și reducerea consumului de memorie;
- Pachet de extensii pentru calcule matematice în limbajul JavaScript;
- O interfață pentru execuția codului în modul de linie de comandă, care suportă sintaxă colorată;
- O bibliotecă standard compactă cu legături la bibliotecile C.
Proiectul dezvoltă de asemenea trei biblioteci C asociate, folosite în QuickJS și potrivite pentru utilizare separată:
- libregexp — o implementare rapidă a expresiilor regulate, complet compatibilă cu specificația Javascript ES 2019;
- libunicode — o bibliotecă compactă pentru lucrul cu Unicode;
- libbf — o implementare a operațiunilor cu numere în virgulă mobilă de precizie arbitrară și a funcțiilor transcedentale cu rotunjire precisă.
Sursa: opennet.ro
