Lanzamento do motor JavaScript incorporado Duktape 2.4.0

publicado Lanzamento do motor JavaScript Duktape 2.4.0, destinado a incorporar no código base de proxectos en linguaxe C/C++. O motor é de tamaño compacto, altamente portátil e con baixo consumo de recursos. O código fonte do motor está escrito en C e espallamento baixo a licenza MIT.

O código Duktape ocupa uns 160 kB e consome só 70 kB de RAM, e no modo de baixo consumo de memoria 27 kB de RAM. Para integrar Duktape en código C/C++ é suficiente engade os ficheiros duktape.c e duktape.h ao proxecto e úsao API Duktape para chamar a funcións JavaScript desde código C/C++ ou viceversa. Para liberar da memoria os obxectos non utilizados, utilízase un colector de lixo cun finalizador, construído a partir dunha combinación algoritmo conta de enlaces con algoritmo de marcado (Mark and Sweep). O motor úsase para procesar JavaScript no navegador NetSurf.

Ofrece compatibilidade total coas especificacións de Ecmascript 5.1 e parcial apoiar Ecmascript 2015 e 2016 (E6 e E7), incluíndo soporte de obxectos proxy para virtualización de propiedade, matrices tipográficas, ArrayBuffer, búfer Node.js, API de codificación, obxecto Symbol, etc. Inclúe un depurador integrado, un motor de expresións regulares e un subsistema para compatibilidade con Unicode. Tamén se proporcionan extensións específicas, como soporte de corrutina, un marco de rexistro integrado, un mecanismo de carga de módulos baseado en CommonJS e un sistema de caché de bytecode que che permite gardar e cargar funcións compiladas.

Na nova versión implementado novas chamadas a duk_to_stacktrace() e duk_safe_to_stacktrace() para obter trazos de pila, duk_push_bare_array() para engadir instancias de matriz independentes. As funcións duk_require_constructable() e duk_require_constructor_call() fixéronse públicas. Compatibilidade mellorada coa especificación ES2017. Optimizouse o traballo con matrices e obxectos. Engadiuse a opción "--no-auto-complete" á interface duk CLI para desactivar a finalización da entrada.

Fonte: opennet.ru

Engadir un comentario