Franse wiskundige Fabrice Bellard, wat die QEMU- en FFmpeg-projekte gestig het, het ook die vinnigste formule vir die berekening van die getal Pi geskep en die beeldformaat ontwikkel , het die eerste vrystelling van die nuwe JavaScript-enjin gepubliseer . Die enjin is kompak en ontwerp vir integrasie in ander stelsels. Die projekkode is in C geskryf en word onder die MIT-lisensie versprei. 'n Bou van die enjin is ook beskikbaar, saamgestel in WebAssembly met behulp van Emscripten en geskik vir uitvoering in blaaiers.
JavaScript-implementering ES2019-spesifikasie, insluitend modules, asinchroniese kragopwekkers en gevolmagtigdes. Nie-standaard wiskunde word opsioneel ondersteun vir JavaScript, soos BigInt en BigFloat tipes, sowel as . Die prestasie van QuickJS is beduidend beskikbare analoë, byvoorbeeld, in die toets
bench-v8 is voor die enjin teen 35%, meer as twee keer drie keer en sewe keer.
Benewens die biblioteek vir die inbedding van die enjin in toepassings, bied die projek ook 'n qjs-tolk, wat gebruik kan word om JavaScript-kode vanaf die opdragreël uit te voer. Boonop is die qjsc-samesteller beskikbaar, wat in staat is om uitvoerbare lêers te genereer wat geskik is vir selfstandige uitvoering wat nie eksterne afhanklikhede benodig nie.
Belangrikste kenmerke:
- Kompak en maklik om by ander projekte te integreer. Die kode bevat slegs 'n paar C-lêers wat nie eksterne afhanklikhede vir samestelling benodig nie. Die eenvoudigste saamgestelde toepassing neem ongeveer 190 KB;
- Baie hoë werkverrigting en kort opstarttyd. Om 56 duisend ECMAScript-versoenbaarheidstoetse te slaag, neem ongeveer 100 sekondes wanneer dit op 'n enkele kern van 'n gewone rekenaarrekenaar uitgevoer word. Looptyd-inisialisering neem minder as 300 mikrosekondes;
- Byna volle ondersteuning vir die ES2019-spesifikasie en volle ondersteuning vir Bylaag B, wat komponente definieer vir versoenbaarheid met verouderde webtoepassings;
- Voltooi slaag van alle toetse van die ECMAScript-toetssuite;
- Ondersteuning vir die samestelling van Javascript-kode in uitvoerbare lêers sonder eksterne afhanklikhede;
- 'n Vullisverwyderaar gebaseer op verwysingtelling sonder sikliese skoonmaak, wat ons in staat gestel het om voorspelbare gedrag te bereik en geheueverbruik te verminder;
- 'n Stel uitbreidings vir wiskundige berekeninge in JavaScript;
- 'n Skulp vir die uitvoering van kode in die opdragreëlmodus, wat kontekstuele kode-verligting ondersteun;
- Kompakte standaardbiblioteek met omhulsels oor die C-biblioteek.
Die projek ontwikkel ook drie gepaardgaande C-biblioteke wat by QuickJS betrokke is en geskik is vir individuele gebruik:
- libregexp - vinnige implementering van gereelde uitdrukkings, ten volle versoenbaar met die Javascript ES 2019-spesifikasie;
- libunicode - 'n kompakte biblioteek om met Unicode te werk;
- libbf - Implementering van arbitrêre presisie drywende punt bewerkings en transendentale funksies met presiese afronding.
Bron: opennet.ru
