Vydání vestavěného JavaScript enginu Duktape 2.4.0

zveřejněno Vydání JavaScript motoru Duktape 2.4.0, zaměřené na vkládání do kódové báze projektů v jazyce C/C++. Motor je kompaktní velikosti, vysoce přenosný a má nízkou spotřebu zdrojů. Zdrojový kód motoru je napsán v C a šíření pod licencí MIT.

Kód Duktape zabírá asi 160 kB a spotřebuje pouze 70 kB RAM a v režimu nízké spotřeby paměti 27 kB RAM. Chcete-li integrovat Duktape do kódu C/C++ je dostačující přidat soubory duktape.c a duktape.h do projektu a použít Duktape API volání funkcí JavaScriptu z kódu C/C++ nebo naopak. K uvolnění nepoužívaných objektů z paměti se používá garbage collector s finalizátorem, postavený na základě kombinace algoritmus počítání odkazů pomocí značkovacího algoritmu (Mark and Sweep). Engine se používá ke zpracování JavaScriptu v prohlížeči NetSurf.

Poskytuje plnou a částečnou kompatibilitu se specifikacemi Ecmascript 5.1 podpora Ecmascript 2015 a 2016 (E6 a E7), včetně podpory proxy objektů pro virtualizaci vlastností, Typed Arrays, ArrayBuffer, Node.js Buffer, Encoding API, Symbol objektu atd. Obsahuje vestavěný debugger, modul regulárních výrazů a subsystém pro podporu Unicode. K dispozici jsou také specifická rozšíření, jako je podpora coroutine, vestavěný protokolovací rámec, mechanismus načítání modulů založený na CommonJS a systém ukládání do mezipaměti bytecode, který umožňuje ukládat a načítat kompilované funkce.

V novém vydání implementováno nová volání duk_to_stacktrace() a duk_safe_to_stacktrace() pro získání trasování zásobníku, duk_push_bare_array() pro přidání nezávislých instancí pole. Funkce duk_require_constructable() a duk_require_constructor_call() byly zveřejněny. Vylepšená kompatibilita se specifikací ES2017. Práce s poli a objekty byla optimalizována. Do rozhraní duk CLI byla přidána možnost „--no-auto-complete“ pro zakázání dokončování vstupu.

Zdroj: opennet.ru

Přidat komentář