Llançament del motor JavaScript incrustat Duktape 2.4.0

publicat Alliberament del motor JavaScript Duktape 2.4.0, destinada a incrustar a la base de codi dels projectes en llenguatge C/C++. El motor és de mida compacta, altament portàtil i consumeix baix recursos. El codi font del motor està escrit en C i propagació sota la llicència MIT.

El codi Duktape ocupa uns 160 kB i només consumeix 70 kB de RAM, i en mode de baix consum de memòria 27 kB de RAM. Per integrar Duktape al codi C/C++ és suficient afegir els fitxers duktape.c i duktape.h al projecte i utilitzar-los API Duktape per cridar funcions JavaScript des del codi C/C++ o viceversa. Per alliberar objectes no utilitzats de la memòria, s'utilitza un col·lector d'escombraries amb un finalitzador, construït sobre la base d'una combinació algorisme recompte d'enllaços amb algorisme de marcatge (Mark and Sweep). El motor s'utilitza per processar JavaScript al navegador NetSurf.

Proporciona compatibilitat total amb les especificacions d'Ecmascript 5.1 i parcial donar suport Ecmascript 2015 i 2016 (E6 i E7), inclòs el suport d'objectes proxy per a la virtualització de propietats, Matrius tipificats, ArrayBuffer, Buffer Node.js, API de codificació, objecte Symbol, etc. Inclou un depurador integrat, un motor d'expressions regulars i un subsistema per al suport Unicode. També es proporcionen extensions específiques, com ara suport de corrutine, un marc de registre integrat, un mecanisme de càrrega de mòduls basat en CommonJS i un sistema de memòria cau de codi de bytes que us permet desar i carregar funcions compilades.

A la nova versió implementat noves crides a duk_to_stacktrace() i duk_safe_to_stacktrace() per obtenir traces de pila, duk_push_bare_array() per afegir instàncies de matriu independents. Les funcions duk_require_constructable() i duk_require_constructor_call() s'han fet públiques. Compatibilitat millorada amb l'especificació ES2017. S'ha optimitzat el treball amb matrius i objectes. S'ha afegit l'opció "--no-auto-complete" a la interfície duk CLI per desactivar la finalització de l'entrada.

Font: opennet.ru

Afegeix comentari