lanzamiento del motor JavaScript , orientado a la integración en la base de código de proyectos en C/C++. El motor se distingue por su tamaño compacto, alta portabilidad y bajo consumo de recursos. Los códigos fuente del motor están escritos en C y bajo licencia MIT.
El código de Duktape ocupa alrededor de 160 kB y consume solo 70 kB de RAM, y en modo de bajo consumo de memoria 27 kB de RAM. Para integrar Duktape en código C/C++, se deben incluir en el proyecto los archivos duktape.c y duktape.h, y utilizar para invocar funciones en JavaScript desde código C/C++ o viceversa. Para liberar objetos no utilizados de la memoria, se utiliza un recolector de basura con finalizador, basado en una combinación de de conteo de referencias con el algoritmo de marcado y barrido (Mark and Sweep). El motor se utiliza para procesar JavaScript en el navegador .
Se garantiza la compatibilidad total con las especificaciones Ecmascript 5.1 y parcial Ecmascript 2015 y 2016 (E6 y E7), incluyendo soporte para el objeto Proxy para la virtualización de propiedades, arreglos tipados, ArrayBuffer, Node.js Buffer, Encoding API, objeto Symbol, etc. También incluye un depurador integrado, motor para ejecutar expresiones regulares y subsistema para soporte de Unicode. Además, se proporcionan extensiones específicas, como soporte para corrutinas, marco integrado para registro y mecanismo de carga de módulos basado en CommonJS, sistema de caché de bytecode que permite guardar y cargar funciones compiladas.
En esta nueva versión nuevas llamadas duk_to_stacktrace() y duk_safe_to_stacktrace() para obtener trazas de pila, duk_push_bare_array() para agregar instancias independientes de arreglos. Las funciones duk_require_constructable() y duk_require_constructor_call() han sido traducidas al público. Mejorada la compatibilidad con la especificación ES2017. Optimizadas las operaciones con arreglos y objetos. Se ha añadido la opción «—no-auto-complete» a la interfaz CLI de duk para desactivar la autocompletación de entradas.
Fuente: opennet.ru
