Zakladateľ QEMU a FFmpeg zverejnil JavaScript engine QuickJS

Francúzsky matematik Fabrice Bellard, zakladateľ projektov QEMU a FFmpeg, ako aj tvorca najrýchlejšieho vzorca na výpočet čísla Pi a autor formátu obrázkov BPG, publikoval prvé vydanie nového JavaScriptového enginu QuickJS. Engine vyniká kompaktnosťou a je orientovaný na zabudovanie do iných systémov. Kód projektu je napísaný v jazyku C a je šírený pod licenciou MIT. K dispozícii je aj zostava enginu skompilovaná do WebAssembly pomocou Emscripten, ktorá je vhodná na spúšťanie v prehliadačoch.

Implementácia JavaScriptu podporuje špecifikáciu ES2019, vrátane modulov, asynchrónnych generátorov a proxy. Voliteľne podporuje neštandardné matematické rozšírenia funkcie pre JavaScript, ako sú typy BigInt a BigFloat, ako aj preťaženie operátorov. Z hľadiska výkonu je QuickJS výrazne prekonáva lepší ako existujúce alternatívy, napríklad v teste
bench-v8 prekonáva engine XS o 35%, DukTape viac než dvakrát, JerryScript trikrát, a MuJS až sedemkrát.

Okrem knižnice na zabudovanie enginu do aplikácií projekt ponúka aj interpret qjs, ktorý možno použiť na spúšťanie JavaScriptového kódu z príkazového riadku. Navyše je k dispozícii kompilátor qjsc, ktorý dokáže generovať samostatne spustiteľné súbory, ktoré nevyžadujú externé závislosti.

Hlavné vlastnosti:

  • Kompaktnosť a jednoduchosť integrácie do iných projektov. Kód obsahuje len niekoľko súborov v jazyku C, ktoré na zostavenie nevyžadujú externé závislosti. Skompilovaná najjednoduchšia aplikácia zaberá približne 190 kB;
  • Veľmi vysoký výkon a krátky čas spustenia. Pardón 56 tisíc testov na kompatibilitu s ECMAScript trvá približne 100 sekúnd pri vykonávaní na jednom jadre bežného stolného PC. Inicializácia runtime trvá menej ako 300 mikrosekúnd;
  • Takmer úplná podpora špecifikácie ES2019 a plná podpora aplikácie 'B', definujúcej komponenty pre kompatibilitu so starými webovými aplikáciami;
  • Úplné absolvovanie všetkých testov zady z ECMAScript Test Suite;
  • Podpora kompilácie kódu v jazyku JavaScript na spustiteľné súbory bez externých závislostí;
  • Zberný spracovateľ na základe počítania odkazov bez cyklickej činnosti čistenia, ktorý umožnil dosiahnuť predvídateľné správanie a zníženie spotreby pamäte;
  • Súbor rozšírení pre matematické výpočty v jazyku JavaScript;
  • Skripta na vykonávanie kódu v režime príkazového riadku s podporou syntaxu kódu;
  • Kompaktná štandardná knižnica s obalmi na C knižnicu.

Projekt tiež vyvíja tri sprievodné C knižnice, ktoré sú použité v QuickJS a vhodné na samostatné použitie:

  • libregexp — rýchla implementácia regulárnych výrazov, plne kompatibilná so špecifikáciou Javascript ES 2019;
  • libunicode — kompaktná knižnica na prácu s Unicode;
  • libbf — implementácia operácií s pohyblivou desatinnou čiarkou ľubovoľnej presnosti a transcendentných funkcií s presným zaokrúhľovaním.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster