Prantsuse matemaatik Fabrice Bellard, kes on asutanud projektid QEMU ja FFmpeg ning loonud kõige kiirema π-arvutamise valemi ja pildiformaadi , avaldas uue JavaScript-mootori esimese väljaande . Mootor on kompaktne ja suunatud integreerimisele teiste süsteemidega. Projekti kood on kirjutatud C keeles ja seda levitatakse MIT litsentsi alusel. Samuti on saadaval mootori versioon, mis on koostatud WebAssembly’ks Emscripteni abil ja sobib brauserites käitamiseks.
JavaScripti rakendus vastab ES2019 spetsifikatsioonile, sealhulgas moodulitele, asünkroonsetele generaatoritele ja proksidele. Valikuliselt toetatakse mitte-standardseid matemaatilisi funktsioone JavaScriptis, nagu BigInt ja BigFloat tübid ning . QuickJS ületab oluliselt bench-v8 ületab mootori
bench-v8 опережает движок 35%, üle kahe korra, kolme korra ning seitsme korra.
Rakenduste integreerimise juurde kuulub ka qjs tõlkija, mida saab kasutada JavaScripti koodi käitamiseks käsurealt. Lisaks on saadaval qjsc kompilaator, mis suudab genereerida sõltumatuks käivitamiseks vajalikke täidetavaid faile, mis ei vajad väliseid sõltuvusi.
Peamised omadused:
- Kompaktsus ja lihtsus integreerimisel teistesse projektidesse. Kood sisaldab vaid mõnda C keeles kirjutatud faili, mis ei vaja kogumiseks väliseid sõltuvusi. Kompileeritud kõige lihtsam rakendus võtab umbes 190 Kb;
- Väga kõrge jõudlus ja madal käivituse aeg. 56 000 ECMAScripti ühilduvuse testi läbimine võtab tavalise lauaarvuti ühel tuumal aega umbes 100 sekundit. Runtime'i initsialiseerimine võtab vähem kui 300 mikrosekundit;
- Peaaegu täielik ES2019 spetsifikatsiooni tugi ja täielik rakenduse „B” tugi, mis määratleb komponendid vanemate veebirakendustega ühilduvuse tagamiseks;
- Kõik ECMAScript Test Suite'i testid on täielikult läbitud;
- Toetab JavaScripti koodi kompileerimist täidetavateks failideks ilma välistest sõltuvustest;
- Viidete põhjal põhinev prügikorraldaja, mis ei tee tsüklilisi puhastusi, tagades ettearvatava käitumise ja vähendades mälutarvet;
- JavaScripti matemaatiliste arvutuste laienduste komplekt;
- Koodijooksukeskkond, mis toetab kontekstilist koodi esitlemist.
- Kompaktne standardraamatukogu C-raamatukogude kohal.
Projekt arendab ka kolme juurdekuuluvat C-raamatukogu, mida kasutatakse QuickJS-is ja mis sobivad ka iseseisvaks kasutamiseks:
- libregexp — kiire regulaaravaldiste rakenduse teostus, mis on täielikult ühilduv Javascripti ES 2019 spetsifikatsiooniga;
- libunicode — kompaktne raamatukogu Unicode'i töötlemiseks;
- libbf — muutuva täpsusega ujukomaarvude ja transsendentsete funktsioonide teostus täpse ümardamisega.
Allikas: opennet.ru
