QEMU a FFmpeg Grënner publizéiert QuickJS JavaScript Engine

De franséische Mathematiker Fabrice Bellard, deen eemol d'QEMU- a FFmpeg-Projete gegrënnt huet, an och déi schnellst Formel fir d'Berechnung vu Pi erstallt huet an d'Bildformat entwéckelt huet. PIB, publizéiert déi éischt Verëffentlechung vun engem neie JavaScript-Motor QuickJS. De Motor ass kompakt a konzentréiert sech op d'Integratioun an anere Systemer. De Projet Code ass an C geschriwwen an ënner der MIT Lizenz verdeelt. Och verfügbar ass eng Versammlung vum Motor, deen op WebAssembly mat Emscripten kompiléiert ass a gëeegent fir Ausféierung a Browser.

JavaScript Ëmsetzung ënnerstëtzt der ES2019 Spezifizéierung, dorënner Moduler, asynchronous Generatoren, a Proxy. Net-Standard Mathematik gëtt optional ënnerstëtzt. Expansioun fir JavaScript, wéi d'BigInt a BigFloat Typen, souwéi Bedreiwer iwwerlaascht. Wat d'Performance ugeet, ass QuickJS bedeitend superior zu existéierend Analoga, zum Beispill, am Test
Bench-v8 ass virum Motor XS bei 35%, duktape méi wéi zweemol jerryscript dräimol an MuJS siwe Mol.

Zousätzlech zu der Bibliothéik fir de Motor an Uwendungen z'integréieren, bitt de Projet och den qjs Dolmetscher, dee benotzt ka ginn fir JavaScript Code vun der Kommandozeil ze lafen. Ausserdeem ass de qjsc Compiler verfügbar, fäeg fir standalone ausführbar Dateien ze generéieren déi keng extern Ofhängegkeet erfuerderen.

Haaptmerkmale:

  • Kompakt an einfach an aner Projeten z'integréieren. De Code enthält nëmmen e puer C Dateien déi keng extern Ofhängegkeet erfuerderen fir ze bauen. Déi kompiléiert einfach Applikatioun dauert ongeféier 190 KB;
  • Ganz héich Leeschtung an niddereg Startup Zäit. Passéiere vun 56 Tausend ECMAScript Kompatibilitéitstester dauert ongeféier 100 Sekonnen wann se op engem eenzege Kär vun engem typesche Desktop PC ausgefouert ginn. Runtime Initialiséierung dauert manner wéi 300 Mikrosekonnen;
  • Bal voll Ënnerstëtzung fir d'ES2019 Spezifizéierung a voll Ënnerstëtzung fir Annex B, déi Komponente fir Kompatibilitéit mat eelere Webapplikatiounen definéiert;
  • Komplett Passéiere vun all Tester vun der ECMAScript Test Suite;
  • Ënnerstëtzung fir Javascript Code an ausführbar Dateien ouni extern Ofhängegkeet ze kompiléieren;
  • Referenz gezielt Gerempels Sammelstécker ouni Botzen Cycling, déi fir prévisibel Verhalen a reduzéiert Erënnerung Konsum erlaabt;
  • Eng Rei vun Extensiounen fir mathematesch Berechnungen an der JavaScript Sprooch;
  • Eng Shell fir Code auszeféieren am Kommandozeilmodus deen kontextuell Code Highlighting ënnerstëtzt;
  • Eng kompakt Standardbibliothéik mat Bindungen iwwer d'C Bibliothéik.

De Projet entwéckelt och dräi Begleeder C-Bibliothéiken, déi an QuickJS involvéiert sinn a passend fir eng separat Applikatioun:

  • libregexp ass eng séier Implementatioun vu reegelméissegen Ausdrock déi voll mat der Javascript ES 2019 Spezifizéierung konform ass;
  • libunicode - eng kompakt Bibliothéik fir mat Unicode ze schaffen;
  • libbf ass eng Implementatioun vun arbiträr-Präzisioun schwiewend-Punkt Operatiounen an transzendental Funktiounen mat exakt Ronn.

Source: opennet.ru

Setzt e Commentaire