U matematicu francese Fabrice Bellard, chì hà fundatu i prughjetti QEMU è FFmpeg, hà ancu creatu a formula più veloce per calculà u numeru Pi è hà sviluppatu u formatu di l'imaghjini. , hà publicatu a prima liberazione di u novu mutore JavaScript . U mutore hè compactu è pensatu per l'integrazione in altri sistemi. U codice di u prughjettu hè scrittu in C è hè distribuitu sottu a licenza MIT. Una custruzzione di u mutore hè ancu dispunibule, cumpilata in WebAssembly cù Emscripten è adattatu per l'esekzione in i navigatori.
Implementazione JavaScript Specificazione ES2019, cumpresi moduli, generatori asincroni è proxy. E matematiche non standard sò opzionalmente supportate per JavaScript, cum'è tipi BigInt è BigFloat, è ancu . U rendiment di QuickJS hè significativu analogi dispunibili, per esempiu, in a prova
bench-v8 hè davanti à u mutore à 35%, più di duie volte trè volte è sette volte.
In più di a biblioteca per incrustà u mutore in l'applicazioni, u prughjettu prupone ancu un interprete qjs, chì pò esse usatu per eseguisce codice JavaScript da a linea di cummanda. Inoltre, u compilatore qjsc hè dispunibule, capace di generà fugliali eseguibili di output adattati per l'esecuzione stand-alone chì ùn necessitanu micca dipendenze esterne.
Principi caratteristiche:
- Compact è faciule da integrà in altri prughjetti. U codice include solu uni pochi di schedari C chì ùn necessitanu micca dipendenze esterne per l'assemblea. L'applicazione compilata più simplice piglia circa 190 KB;
- Rendimentu assai altu è tempu di startup brevi. Passà 56 mila teste di cumpatibilità ECMAScript dura circa 100 seconde quandu eseguite nantu à un core unicu di un PC desktop regulare. L'inizializazione di u runtime dura menu di 300 microsecondi;
- Supportu quasi cumpletu per a specificazione ES2019 è supportu cumpletu per l'Appendice B, chì definisce cumpunenti per a cumpatibilità cù l'applicazioni web legacy;
- Passà cumpletu di tutti i testi da a Suite di Test ECMAScript;
- Supportu per a compilazione di codice Javascript in fugliali eseguibili senza dipendenze esterne;
- Un cullettivu di basura basatu annantu à u cuntu di riferimentu senza pulizia ciclica, chì ci hà permessu di ottene un cumpurtamentu prevedibile è riduce u cunsumu di memoria;
- Un inseme di estensioni per i calculi matematichi in JavaScript;
- Una shell per eseguisce codice in modu di linea di cumanda, chì sustene l'evidenziazione di codice contextuale;
- Libreria standard compatta cù wrappers sopra a biblioteca C.
U prughjettu sviluppa ancu trè biblioteche C accumpagnate implicate in QuickJS è adattate per l'usu individuale:
- libregexp - implementazione rapida di espressioni regulari, cumplettamente cumpatibile cù a specificazione Javascript ES 2019;
- libunicode - una biblioteca compatta per travaglià cù Unicode;
- libbf - Implementazione di operazioni in virgola flottante di precisione arbitraria è funzioni trascendentali cù arrotondamentu esattu.
Source: opennet.ru
