Francijas matemÄtiÄ·is Fabriss Bellards (Fabrice Bellard), kurÅ” savulaik dibinÄja projektus QEMU un FFmpeg, kÄ arÄ« izstrÄdÄja ÄtrÄko formulu skaitļa Pi aprÄÄ·inÄÅ”anai un attÄ«stÄ«ja attÄlu formÄtu , publicÄja pirmo laidienu jaunajam JavaScript dzinÄjam . DzinÄjs izceļas ar kompakto izmÄru un ir domÄts iekÅ”Äjo sistÄmu integrÄcijai. Projekta kods ir uzrakstÄ«ts C valodÄ un izplatÄ«ts ar MIT licenci. Pieejama arÄ« dzinÄja versija, kas sagriezta WebAssembly, izmantojot Emscripten, un piemÄrota palaiÅ”anai pÄrlÅ«kprogrammÄs.
JavaScript implementÄcija atbilst ES2019 specifikÄcijai, tostarp moduļiem, asinhroniem Ä£eneratoriem un proksi. Optiski tiek atbalstÄ«ti nestandarta matemÄtiskie JavaScript, piemÄram, BigInt un BigFloat tipi, kÄ arÄ« . AttiecÄ«bÄ uz veiktspÄju QuickJS ir ievÄrojami pÄrspÄj esoÅ”os analogus, piemÄram, testÄ
bench-v8, kas pÄrspÄj dzinÄju par 35%, vairÄk nekÄ divreiz, trÄ«s reizes, bet septiÅas reizes.
Papildus bibliotÄkai dzinÄja iebÅ«vÄÅ”anai aplikÄcijÄs projekts arÄ« piedÄvÄ interpretatoru qjs, kuru var izmantot JavaScript koda uzsÄkÅ”anai no komandrindas. VairÄk nekÄ tam pieejams kompilators qjsc, kas var Ä£enerÄt izpildÄmos failus, kas ir piemÄroti izolÄtai palaiÅ”anai, neprasot ÄrÄjÄs atkarÄ«bas.
GalvenÄs iezÄ«mes:
- Kompaktums un vienkÄrÅ”a iebÅ«vÄÅ”ana citos projektos. Kods ietver tikai dažus failus C valodÄ, kuriem nav nepiecieÅ”amas ÄrÄjÄs atkarÄ«bas, lai tos kompilÄtu. Sagriezta pamata aplikÄcija aizÅem aptuveni 190 kB;
- Ä»oti augsta veiktspÄja un neliels palaiÅ”anas laiks. 56 tÅ«kstoÅ”i testu saderÄ«bas ar ECMAScript nomaina aptuveni 100 sekundes uz vienu kodolu standarta galddatorÄ. Runtime inicializÄcija aizÅem mazÄk par 300 mikrosekundÄm;
- GandrÄ«z pilnÄ«ga ES2019 specifikÄcijas atbalsts un pilnÄ«gs aplikÄcijas "B" atbalsts, kas nosaka komponentus saderÄ«bai ar vecajiem web aplikÄcijÄm;
- Pilnīga visiem testiem no ECMAScript Test Suite;
- Atbalsts Javascript koda kompilÄÅ”anai izpildÄmos failos bez ÄrÄjÄm atkarÄ«bÄm;
- Atkritumu savÄcÄjs, kas balstÄ«ts uz atsauÄu skaitīŔanu, bez cikliskas tÄ«rīŔanas izpildes, kas ļÄva sasniegt prognozÄjamu uzvedÄ«bu un samazinÄt atmiÅas patÄriÅu;
- PaplaÅ”inÄjumu komplekts matemÄtisko aprÄÄ·inu veikÅ”anai Javascript valodÄ;
- Koda izpildes apvalks komandrindÄ, kas atbalsta koda sintaktisko izcelÅ”anu;
- Kompakta standarta bibliotÄka ar C bibliotÄku apvalkiem.
Projekts attÄ«sta arÄ« trÄ«s blakus esoÅ”Äs C bibliotÄkas, kas tiek izmantotas QuickJS un ir piemÄrotas atseviŔķai izmantoÅ”anai:
- libregexp ā Ätra regulÄro izteiksmju realizÄcija, kas pilnÄ«bÄ atbilst Javascript ES 2019 specifikÄcijai;
- libunicode ā kompakta bibliotÄka darbam ar Unicode;
- libbf ā operÄciju ar mainÄ«gu precizitÄti un transcendentÄlajÄm funkcijÄm ar precÄ«zu noapaļoÅ”anu realizÄcija.
Avots: opennet.lv
