Sulautetun JavaScript-moottorin Duktape 2.4.0 julkaisu

julkaistu JavaScript-moottorin julkaisu Duktape 2.4.0, jonka tarkoituksena on upottaa C/C++-kielisten projektien koodipohjaan. Moottori on kooltaan pieni, erittäin kannettava ja pieni resurssien kulutus. Moottorin lähdekoodi on kirjoitettu kielellä C ja levitän MIT-lisenssillä.

Duktape-koodi vie noin 160 kilotavua ja kuluttaa vain 70 kilotavua RAM-muistia ja alhaisen muistinkulutuksen tilassa 27 kilotavua RAM-muistia. Duktapen integrointi C/C++-koodiin riittää lisää tiedostot duktape.c ja duktape.h projektiin ja käytä Duktape API kutsua JavaScript-funktioita C/C++-koodista tai päinvastoin. Käyttämättömien esineiden vapauttamiseksi muistista käytetään roskakeräystä viimeistelijällä, joka on rakennettu yhdistelmän perusteella algoritmi linkkien laskenta merkintäalgoritmilla (Mark and Sweep). Moottoria käytetään JavaScriptin käsittelemiseen selaimessa NetSurf.

Tarjoaa täydellisen yhteensopivuuden Ecmascript 5.1 -eritelmien kanssa ja osittain tukea Ecmascript 2015 ja 2016 (E6 ja E7), mukaan lukien välityspalvelinobjektien tuki kiinteistöjen virtualisointiin, kirjoitetut taulukot, ArrayBuffer, Node.js-puskuri, koodaussovellusliittymä, symboliobjekti jne. Se sisältää sisäänrakennetun debuggerin, säännöllisen lausekkeen moottorin ja Unicode-tuen alijärjestelmän. Tarjolla on myös erityisiä laajennuksia, kuten korutiinituki, sisäänrakennettu lokikehys, CommonJS-pohjainen moduulin latausmekanismi ja tavukoodivälimuistijärjestelmä, jonka avulla voit tallentaa ja ladata käännettyjä toimintoja.

Uudessa julkaisussa toteutettu uudet kutsut duk_to_stacktrace()- ja duk_safe_to_stacktrace()-kutsuille pinojälkien saamiseksi, duk_push_bare_array() itsenäisten taulukko-instanssien lisäämiseksi. Funktiot duk_require_constructable() ja duk_require_constructor_call() on julkaistu. Parannettu yhteensopivuus ES2017-spesifikaation kanssa. Työ taulukoiden ja objektien kanssa on optimoitu. Lisätty "--no-auto-complete" -vaihtoehto duk CLI -liittymään syötteen viimeistelyn poistamiseksi.

Lähde: opennet.ru

Lisää kommentti