lançamento do motor JavaScript , projetado para integração na base de código de projetos em C/C++. O motor se destaca pelo seu tamanho compacto, alta portabilidade e baixo consumo de recursos. O código-fonte do motor é escrito em C e sob a licença MIT.
O código Duktape ocupa cerca de 160 kB e consome apenas 70 kB de RAM, enquanto no modo de baixo consumo de memória consome 27 kB de RAM. Para integrar o Duktape em código C/C++ adicione aos projetos os arquivos duktape.c e duktape.h, e utilize para chamar funções JavaScript de código C/C++ ou vice-versa. Um coletor de lixo com finalizador, baseado em uma combinação de contagem de referências com o algoritmo de Marcação e Limpeza (Mark and Sweep). O motor é utilizado para processamento de JavaScript no navegador .
Proporciona total compatibilidade com as especificações Ecmascript 5.1 e parcial Ecmascript 2015 e 2016 (E6 e E7), incluindo suporte ao objeto Proxy para virtualização de propriedades, arrays tipados, ArrayBuffer, Node.js Buffer, API de Codificação, objeto Symbol, etc. Inclui um depurador embutido, motor para execução de expressões regulares e subsistema de suporte a Unicode. Também fornece extensões específicas, como suporte a co-rotinas, framework de registro embutido, mecanismo de carregamento de módulos baseado em CommonJS, sistema de cache de bytecode que permite salvar e carregar funções compiladas.
Na nova versão novas chamadas duk_to_stacktrace() e duk_safe_to_stacktrace() para obter rastreamentos de pilha, duk_push_bare_array() para adicionar instâncias independentes de arrays. As funções duk_require_constructable() e duk_require_constructor_call() foram traduzidas para público. A compatibilidade com a especificação ES2017 foi aprimorada. O desempenho com arrays e objetos foi otimizado. Uma opção "—no-auto-complete" foi adicionada à interface CLI do duk para desativar a autocompleção da entrada.
Fonte: opennet.ru
