De oprjochter fan QEMU en FFmpeg publisearre de QuickJS JavaScript-motor

De Frânske wiskundige Fabrice Bellard, dy't de QEMU- en FFmpeg-projekten oprjochte, makke ek de rapste formule foar it berekkenjen fan it getal Pi en ûntwikkele it byldformaat GDP, publisearre de earste release fan 'e nije JavaScript-motor QuickJS. De motor is kompakt en ûntwurpen foar yntegraasje yn oare systemen. De projektkoade is skreaun yn C en wurdt ferspraat ûnder de MIT-lisinsje. In build fan 'e motor is ek beskikber, gearstald yn WebAssembly mei Emscripten en geskikt foar útfiering yn browsers.

JavaSkript ymplemintaasje stipet ES2019-spesifikaasje, ynklusyf modules, asynchrone generators en proxy's. Net-standert wiskunde wurde opsjoneel stipe Untfongen fan "http://fy.wikipedia.org/w/index.php? foar JavaSkript, lykas BigInt- en BigFloat-typen, lykas operator overloading. De prestaasjes fan QuickJS binne signifikant superieur oan beskikbere analogen, bygelyks, yn 'e test
bench-v8 is foarút fan 'e motor XS op 35%, DukTape mear as ferdûbele jerryscript trije kear en MuJS sân kear.

Neist de bibleteek foar it ynbêdzjen fan de motor yn applikaasjes, biedt it projekt ek in qjs-interpreter, dy't brûkt wurde kin om JavaScript-koade út te fieren fanút de kommandorigel. Boppedat is de qjsc-kompiler beskikber, by steat om útfierbere bestannen te generearjen dy't geskikt binne foar stand-alone útfiering dy't gjin eksterne ôfhinklikens nedich binne.

Haadfunksjes:

  • Kompakt en maklik te yntegrearjen yn oare projekten. De koade befettet mar in pear C-bestannen dy't gjin eksterne ôfhinklikens nedich binne foar montage. De ienfâldichste kompilearre applikaasje nimt sawat 190 KB;
  • Hiel hege prestaasjes en koarte opstarttiid. It trochjaan fan 56 tûzen ECMAScript-kompatibiliteitstests nimt sawat 100 sekonden as it wurdt útfierd op ien kearn fan in gewoane buroblêd PC. Runtime inisjalisaasje nimt minder as 300 mikrosekonden;
  • Hast folsleine stipe foar de ES2019-spesifikaasje en folsleine stipe foar Appendix B, dy't komponinten definiearret foar kompatibiliteit mei legacy webapplikaasjes;
  • Folslein trochjaan fan alle tests fan 'e ECMAScript Test Suite;
  • Stipe foar it kompilearjen fan Javascript-koade yn útfierbere bestannen sûnder eksterne ôfhinklikens;
  • In garbage collector basearre op referinsje tellen sûnder cyclic cleaning, dy't tastien ús te berikken foarsisber gedrach en ferminderje ûnthâld konsumpsje;
  • In set tafoegings foar wiskundige berekkeningen yn JavaSkript;
  • In shell foar it útfieren fan koade yn kommandorigelmodus, stipet kontekstuele koade markearring;
  • Kompakte standertbibleteek mei wrappers oer de C-bibleteek.

It projekt ûntwikkelet ek trije byhearrende C-biblioteken belutsen by QuickJS en geskikt foar yndividueel gebrûk:

  • libregexp - snelle ymplemintaasje fan reguliere útdrukkingen, folslein kompatibel mei de Javascript ES 2019-spesifikaasje;
  • libunicode - in kompakte bibleteek foar wurkjen mei Unicode;
  • libbf - Ymplemintaasje fan willekeurige presys driuwende punt operaasjes en transzendintale funksjes mei eksakte rûning.

Boarne: opennet.ru

Add a comment