Veröffentlichung der eingebetteten JavaScript-Engine Duktape 2.4.0

Veröffentlicht Veröffentlichung der JavaScript-Engine Duktape 2.4.0, mit dem Ziel, in die Codebasis von Projekten in der Sprache C/C++ einzubetten. Der Motor ist kompakt, leicht zu transportieren und verbraucht wenig Ressourcen. Der Quellcode der Engine ist in C geschrieben und Ausbreitung unter der MIT-Lizenz.

Der Duktape-Code nimmt etwa 160 kB ein und verbraucht nur 70 kB RAM, im Modus mit geringem Speicherverbrauch 27 kB RAM. Um Duktape in C/C++-Code zu integrieren genug Fügen Sie die Dateien duktape.c und duktape.h zum Projekt hinzu und verwenden Sie sie Duktape-API um JavaScript-Funktionen aus C/C++-Code aufzurufen oder umgekehrt. Um ungenutzte Objekte aus dem Speicher zu befreien, wird ein Garbage Collector mit Finalizer verwendet, der auf einer Kombination basiert Algorithmus Linkzählung mit Markierungsalgorithmus (Mark and Sweep). Die Engine dient zur Verarbeitung von JavaScript im Browser NetSurf.

Bietet vollständige und teilweise Kompatibilität mit den Ecmascript 5.1-Spezifikationen unterstützen Ecmascript 2015 und 2016 (E6 und E7), einschließlich Proxy-Objektunterstützung für Eigenschaftenvirtualisierung, typisierte Arrays, ArrayBuffer, Node.js-Puffer, Codierungs-API, Symbolobjekt usw. Es umfasst einen integrierten Debugger, eine Engine für reguläre Ausdrücke und ein Subsystem für Unicode-Unterstützung. Es werden auch spezifische Erweiterungen bereitgestellt, z. B. Coroutine-Unterstützung, ein integriertes Protokollierungsframework, ein CommonJS-basierter Modullademechanismus und ein Bytecode-Caching-System, mit dem Sie kompilierte Funktionen speichern und laden können.

In der neuen Ausgabe umgesetzt neue Aufrufe von duk_to_stacktrace() und duk_safe_to_stacktrace() zum Abrufen von Stack-Traces, duk_push_bare_array() zum Hinzufügen unabhängiger Array-Instanzen. Die Funktionen duk_require_constructable() und duk_require_constructor_call() wurden veröffentlicht. Verbesserte Kompatibilität mit der ES2017-Spezifikation. Die Arbeit mit Arrays und Objekten wurde optimiert. Option „--no-auto-complete“ zur duk-CLI-Schnittstelle hinzugefügt, um die Eingabevervollständigung zu deaktivieren.

Source: opennet.ru

Kommentar hinzufügen