Lancement du moteur JavaScript , conçu pour être intégré dans le code de base de projets en C/C++. Le moteur se distingue par sa taille compacte, sa grande portabilité et sa faible consommation de ressources. Le code source du moteur est écrit en C et sous licence MIT.
Le code de Duktape occupe environ 160 kB et consomme seulement 70 kB de RAM, et en mode faible consommation de mémoire, 27 kB de RAM. Pour intégrer Duktape dans le code C/C++ ajoutez les fichiers duktape.c et duktape.h à votre projet, et utilisez pour appeler des fonctions JavaScript depuis le code C/C++ ou vice versa. Un ramasse-miettes avec finaliseur est utilisé pour libérer les objets inutilisés en mémoire, basé sur une combinaison de comptage des références et de l'algorithme de marquage et balayage (Mark and Sweep). Le moteur est utilisé pour exécuter JavaScript dans le navigateur .
Il assure une compatibilité complète avec les spécifications Ecmascript 5.1 et partielle avec Ecmascript 2015 et 2016 (E6 et E7), y compris le support de l'objet Proxy pour la virtualisation des propriétés, des tableaux typés, ArrayBuffer, Node.js Buffer, l'API d'encodage, l'objet Symbol, etc. Il comprend un débogueur intégré, un moteur pour l'exécution d'expressions régulières et un sous-système pour le support de l'Unicode. Des extensions spécifiques sont également fournies, telles que le support des coroutines, un cadre intégré pour la journalisation, un mécanisme de chargement de modules basé sur CommonJS, et un système de mise en cache de bytecode permettant de sauvegarder et charger des fonctions compilées.
Dans cette nouvelle version De nouveaux appels duk_to_stacktrace() et duk_safe_to_stacktrace() pour obtenir des traces de pile, duk_push_bare_array() pour ajouter des instances indépendantes de tableaux. Les fonctions duk_require_constructable() et duk_require_constructor_call() ont été traduites en public. La compatibilité avec la spécification ES2017 a été améliorée. Le traitement des tableaux et des objets a été optimisé. Une option «--no-auto-complete» a été ajoutée à l'interface CLI duk pour désactiver la complétion automatique des entrées.
Source : opennet.ru
