Выпуск убудаванага JavaScript-рухавічка Duktape 2.4.0

Апублікаваны выпуск JavaScript-рухавічка Duktape 2.4.0, арыентаванага на ўбудаванне ў кодавую базу праектаў на мове C/C++. Рухавічок адрозніваецца кампактным памерам, высокай пераноснасцю і нізкім спажываннем рэсурсаў. Зыходныя тэксты рухавічка напісаны на мове Сі і распаўсюджваюцца пад ліцэнзіяй MIT.

Код Duktape займае каля 160 kB і спажывае за ўсё 70kB АЗП, а ў рэжыме нізкага спажывання памяці 27kB АЗП. Для інтэграцыі Duktape у код на C/C++ дастаткова дадаць у праект файлы duktape.c і duktape.h, і выкарыстоўваць Duktape API для выкліку функцый на JavaScript з кода на C/C++ ці наадварот. Для вызвалення аб'ектаў, якія не выкарыстоўваюцца, з памяці прымяняецца зборшчык смецця з фіналізатарам, пабудаваны на аснове камбінацыі. алгарытму падліку спасылак з алгарытмам паметак (Mark and Sweep). Рухавічок ужываецца для апрацоўкі JavaScript у браўзэры NetSurf.

Забяспечваецца поўная сумяшчальнасць са спецыфікацыямі Ecmascript 5.1 і частковая падтрымка Ecmascript 2015 і 2016 (E6 і E7), у тым ліку падтрымка аб'екта Proxy для віртуалізацыі уласцівасцяў, тыпізаваныя масівы, ArrayBuffer, Node.js Buffer, Encoding API, аб'ект Symbol і да т.п. У склад уваходзіць убудаваны адладчык, рухавік для выканання рэгулярных выразаў і падсістэма для падтрымкі Unicode. Таксама прадастаўляюцца спецыфічныя пашырэнні, такія як падтрымка супраграм, убудаваны фрэймворк для часопісавання, механізм загрузкі модуляў на аснове CommonJS, сістэма кэшавання байткода, якая дазваляе захоўваць і загружаць скампіляваныя функцыі.

У новым выпуску рэалізаваны новыя выклікі duk_to_stacktrace() і duk_safe_to_stacktrace() для атрымання трасіровак стэка, duk_push_bare_array() для дадання незалежных асобнікаў масіваў. У лік публічных пераведзены функцыі duk_require_constructable() і duk_require_constructor_call(). Палепшана сумяшчальнасць са спецыфікацыяй ES2017. Аптымізавана работа з масівамі і аб'ектамі. У CLI-інтэрфейс duk дададзена опцыя «—no-auto-complete» для адключэння аводапаўнення ўводу.

Крыніца: opennet.ru

Дадаць каментар