Prantsuse matemaatik Fabrice Bellard, kes lĂ”i projektid QEMU ja FFmpeg, samuti vĂ€lja töötas kiireima valemi pi arvelemiseks ja piltide formaadi, , avaldas uue JavaScripti mootorite esimese vĂ€ljaande, . Mootor on kompaktne ja suunatud teiste sĂŒsteemide integreerimisele. Projekti kood on kirjutatud C keeles ja levitatakse MIT litsentsi alusel. Samuti on saadaval mootori versioon, mis on kompileeritud WebAssembly-le Emscripteni abil ja sobib brauserites töötamiseks.
JavaScripti rakendamine ES2019 spetsifikatsiooni, sealhulgas mooduleid, asĂŒnkroonseid generaatoreid ja proksisid. Valikaliselt toetatakse mittestandardseid matemaatilisi JavaScripti omadusi, nagu BigInt ja BigFloat tĂŒĂŒbid, samuti . QuickJS ĂŒletab oluliselt bench-v8, ĂŒletab see mootori
XS DukTape'i JerryScripti MuJS-i Lisaks rakenduse integreerimise raamatukogule pakub projekt ka qjs tÔlki, mida saab kasutada JavaScripti koodi kÀivitamiseks kÀsurealt. Veelgi enam, saadaval on qjsc kompilaator, mis suudab genereerida eraldi kÀitatavad failid, mis ei vaja vÀliseid sÔltuvusi.
Kompaktsus ja lihtsus teiste projektide integreerimisel. Kood sisaldab vaid mÔnda C keeles kirjutatud faili, mis ei vaja kogumiseks vÀliseid sÔltuvusi. Kompilleeritud kÔige lihtsam rakendus vÔtab umbes 190 Kb;
PÔhiomadused:
- VĂ€ga kĂ”rge jĂ”udlus ja madal kĂ€ivitusaeg. 56 000 testist, mis kontrollivad ECMAScripti ĂŒhilduvust, lĂ€bimine vĂ”tab tavalise lauaarvuti ĂŒhel tuumal umbes 100 sekundit. Aeg runtime'i initsialiseerimiseks on vĂ€hem kui 300 mikrosekundit;
- Peaaegu tĂ€ielik ES2019 spetsifikatsiooni tugi ja tĂ€ielik rakenduse B tugi, mis mÀÀratleb elemendid vanade veebi rakenduste ĂŒhilduvuse tagamiseks;
- KÔikide ECMAScript Test Suite'i testide tÀielik lÀbimine;
- Toetab JavaScripti koodi kompileerimist kÀitatavateks failideks, mis ei vaja vÀliseid sÔltuvusi;
- JĂ€relkorraga jÀÀtmekorjaja, mis pĂ”hineb viidete arvel ja ei teosta tsĂŒklilisi puhastusprotsesse, mis on vĂ”imaldanud saavutada ettearvatavat kĂ€itumist ja vĂ€hendada mĂ€lutarbimist;
- Link-counting pĂ”hine prĂŒgikorjaja, mis vĂ”imaldab saavutada ennustatavat kĂ€itumist ja vĂ€hendada mĂ€lu kasutamist;
- JavaScripti matemaatilisi arvutusi teostav laienduste komplekt;
- Koodide tÀitmise kest, mis toetab koodi kontekstitundlikku esiletÔstmist;
- Kompaktne standardraamatukogu, mis pakub C-teekide ĂŒmberpakendusi.
Projektis arendatakse ka kolme seotud C-raamatukogu, mis on kasutusel QuickJS-is ja sobivad eraldi kasutamiseks:
- libregexp â kiire regulaaravaldiste rakendus, mis on tĂ€ielikult ĂŒhilduv JavaScripti ES 2019 spetsifikatsiooniga;
- libunicode â kompaktne raamatukogu Unicode'i töötlemiseks;
- libbf â ebatĂ€pse tĂ€psusega ujuvapunkti operatsioonide ja transsendentsete funktsioonide rakendus tĂ€pse ĂŒmardamisega.
Allikas: opennet.ru
