Vrystelling van die ingebedde JavaScript-enjin Duktape 2.4.0

gepubliseer JavaScript-enjin vrystelling Duktape 2.4.0, wat daarop gemik is om in die kodebasis van projekte in die C/C++-taal in te sluit. Die enjin is kompak in grootte, hoogs draagbaar en lae hulpbronverbruik. Die bronkode van die enjin is in C en geskryf versprei onder die MIT-lisensie.

Die Duktape-kode neem ongeveer 160 kB op en verbruik slegs 70 kB RAM, en in lae geheueverbruikmodus 27 kB RAM. Om Duktape in C/C++-kode te integreer genoeg voeg lêers duktape.c en duktape.h by die projek, en gebruik Duktape API om JavaScript-funksies op te roep vanaf C/C++-kode of omgekeerd. Om ongebruikte voorwerpe uit die geheue te bevry, word 'n vullisverwyderaar met 'n finaliseerder gebruik, gebou op grond van 'n kombinasie algoritme skakeltelling met nasienalgoritme (Mark and Sweep). Die enjin word gebruik om JavaScript in die blaaier te verwerk NetSurf.

Bied volle versoenbaarheid met Ecmascript 5.1 spesifikasies en gedeeltelik ondersteun Ecmascript 2015 en 2016 (E6 en E7), insluitend Proxy-objekondersteuning vir eiendomvirtualisering, getikte skikkings, ArrayBuffer, Node.js Buffer, Encoding API, Simbool-objek, ens. Dit bevat 'n ingeboude ontfouter, 'n gewone uitdrukking-enjin en 'n substelsel vir Unicode-ondersteuning. Spesifieke uitbreidings word ook verskaf, soos Coroutine-ondersteuning, 'n ingeboude aantekenraamwerk, 'n CommonJS-gebaseerde module-laaimeganisme en 'n greepkode-kasstelsel wat jou toelaat om saamgestelde funksies te stoor en te laai.

In die nuwe uitgawe geïmplementeer nuwe oproepe na duk_to_stacktrace() en duk_safe_to_stacktrace() om stapelspore te kry, duk_push_bare_array() om onafhanklike skikkinggevalle by te voeg. Die funksies duk_require_constructable() en duk_require_constructor_call() is publiek gemaak. Verbeterde verenigbaarheid met die ES2017-spesifikasie. Werk met skikkings en voorwerpe is geoptimaliseer. Bygevoeg "--geen-outo-voltooi" opsie by die duk CLI koppelvlak om invoer voltooiing te deaktiveer.

Bron: opennet.ru

Voeg 'n opmerking