QEMU ja FFmpeg asutaja avaldas JavaScripti mootori QuickJS.

Prantsuse matemaatik Fabrice Bellard, kes lĂ”i projektid QEMU ja FFmpeg, samuti vĂ€lja töötas kiireima valemi pi arvelemiseks ja piltide formaadi, BPG, avaldas uue JavaScripti mootorite esimese vĂ€ljaande, QuickJS. 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 toetab ES2019 spetsifikatsiooni, sealhulgas mooduleid, asĂŒnkroonseid generaatoreid ja proksisid. Valikaliselt toetatakse mittestandardseid matemaatilisi laiendused JavaScripti omadusi, nagu BigInt ja BigFloat tĂŒĂŒbid, samuti operaatorite ĂŒlekoormust. QuickJS ĂŒletab oluliselt olemasolevaid analooge, nĂ€iteks testis bench-v8, ĂŒletab see mootori
XS 35% vĂ”rra, DukTape'i ĂŒle kahe korra, JerryScripti kolme korra ning MuJS-i seitsme korra. 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

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster