Matematikani francez Fabrice Bellard, i njohur për krijimin e projekteve QEMU dhe FFmpeg, si dhe për formulën më të shpejtë për llogaritjen e numrit Pi dhe formatin e imazheve BPG, publikoi numrin e parë të motorit të ri JavaScript. , i cili është i kompakt dhe i përshtatur për t'u integruar në sisteme të tjera. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën MIT. Gjithashtu, ekziston një ndërtim i motorit, i kompiluar në WebAssembly me ndihmën e Emscripten dhe i përshtatshëm për t'u ekzekutuar në shfletuesit. Implementimi i JavaScript
plotëson specifikimin ES2019, duke përfshirë module, gjenerues asinkron dhe proxy. Opcionalisht, mbështeten mathë të pa standardizuar për JavaScript, të tilla si tipet BigInt dhe BigFloat, si dhe mbingarkesa e operatorëve më i shpejtë se alternativat ekzistuese; për shembull, në një test bench-v8, motori
i tejkalon me shtatë herë. me 35%, për më shumë se dyfish, me tre herë, ndërsa Përveç bibliotekës për integrimin e motorit në aplikacione, projekti ofron gjithashtu një interpretuese qjs, e cila mund të përdoret për ekzekutimin e kodit JavaScript nga rreshti komandës. Më tepër, ekziston një kompilator qjsc, i cili është në gjendje të gjenerojë skedarë ekzekutivë, të cilët nuk kërkojnë varësi të jashtme.
Kompaktësia dhe lehtësia e integrimit në projekte të tjera. Kodi përfshin vetëm disa skedarë në gjuhën C, pa nevojën për varësi të jashtme për ndërtimin. Një aplikacion i thjeshtë i kompiluar merr rreth 190 KB;
Karakteristikat kryesore:
- Performancë shumë e lartë dhe kohë e shkurtër inicializimi. Kalimi i 56 mijë testeve për përputhshmërinë me ECMAScript zgjat rreth 100 sekonda kur ekzekutohet në një bërthamë të zakonshme të një PC desktop. Inizializimi i runtime merr më pak se 300 mikrosekonda;
- Mbështetje pothuajse e plotë e specifikimit ES2019 dhe mbështetje e plotë e aplikacionit 'B', i cili përcakton komponentët për përputhshmërinë me aplikacionet web të vjetra;
- Plotësimi i të gjitha testeve nga grupi ECMAScript Test Suite;
- Mbështetje për kompilimin e kodit JavaScript në skedarë ekzekutivë pa varësi të jashtme;
- Garazh dhellëzimi i bazuar në numërimin e referencave pa pastrimin ciklik, që ka lejuar arritjen e një sjelljeje të parashikueshme dhe zvogëlim të konsumit të memories;
- Një grup zgjerimesh për llogaritjet matematike në JavaScript;
- Një ambient për ekzekutimin e kodit në rimë komandash me mbështetje për ndriçimin e kontekstit;
- Një bibliotekë standarde kompakte me përshtatje mbi bibliotekën C.
- Projekti gjithashtu zhvillon tre biblioteka të tjera C, të përfshira në QuickJS dhe të përshtatshme për përdorim të veçantë:
libregexp — një implementim i shpejtë i shprehjeve të rregullta, plotësisht të përshtatshme me specifikimin JavaScript ES 2019;
- libunicode — një bibliotekë kompakte për punë me Unicode;
- libbf — një implementim i operacioneve me pikë lundruese me saktësi të rastësishme dhe funksione transcendentes me rrumbullakim të saktë.
- libbf — реализация операций с плавающей запятой произвольной точности и трансцендентных функций с точным округлением.
Burimi: opennet.ru
