Liberigo de la enigita JavaScript-motoro Duktape 2.4.0

eldonita Eldono de JavaScript-motoro Duktape 2.4.0, celita al enkonstruado en la kodbazon de projektoj en la C/C++-lingvo. La motoro estas kompakta en grandeco, tre portebla kaj malalta resursa konsumo. La fontkodo de la motoro estas skribita en C kaj disvastigi sub la MIT-licenco.

La Duktape-kodo okupas proksimume 160 kB kaj konsumas nur 70 kB da RAM, kaj en malalta memorkonsuma reĝimo 27 kB da RAM. Integri Duktape en C/C++-kodon estas sufiĉa aldonu dosierojn duktape.c kaj duktape.h al la projekto, kaj uzu Duktape API por voki JavaScript-funkciojn el C/C++-kodo aŭ inverse. Por liberigi neuzatajn objektojn el memoro, oni uzas rubkolektilon kun finigilo, konstruita surbaze de kombinaĵo. algoritmo nombrado de ligoj kun markada algoritmo (Mark and Sweep). La motoro estas uzata por prilabori JavaScript en la retumilo NetSurf.

Provizas plenan kongruon kun Ecmascript 5.1-specifoj kaj parta subteno Ecmascript 2015 kaj 2016 (E6 kaj E7), inkluzive de Proxy-objektsubteno por posedaĵvirtualigo, Typed Arrays, ArrayBuffer, Node.js Buffer, Encoding API, Symbol-objekto, ktp. Ĝi inkluzivas enkonstruitan erarserĉilon, regulan esprimon motoron kaj subsistemon por Unikoda subteno. Specifaj etendaĵoj ankaŭ estas provizitaj, kiel korutina subteno, enkonstruita registradkadro, CommonJS-bazita modula ŝarĝa mekanismo, kaj bajtokoda kaŝmemorsistemo, kiu permesas vin konservi kaj ŝargi kompilitajn funkciojn.

En la nova eldono efektivigita novaj vokoj al duk_to_stacktrace() kaj duk_safe_to_stacktrace() por ricevi stakspurojn, duk_push_bare_array() por aldoni sendependajn tabelokazojn. La funkcioj duk_require_constructable() kaj duk_require_constructor_call() estis publikigitaj. Plibonigita kongruo kun la specifo ES2017. Laboro kun tabeloj kaj objektoj estis optimumigita. Aldonita "--no-auto-complete" opcio al la duk CLI-interfaco por malŝalti enigkompletigon.

fonto: opennet.ru

Aldoni komenton