uitgave van de JavaScript-engine , gericht op integratie in de codebasis van projecten in de programmeertalen C/C++. De engine is compact, zeer draagbaar en verbruikt weinig middelen. De broncode van de engine is geschreven in C en valt onder de MIT-licentie.
de code van Duktape is ongeveer 160 kB en verbruikt slechts 70 kB RAM, en in de modus met laag geheugengebruik 27 kB RAM. Om Duktape te integreren in C/C++ code voegt u de bestanden duktape.c en duktape.h toe aan het project en gebruikt u om functies in JavaScript aan te roepen vanuit C/C++ code of vice versa. Om ongebruikte objecten uit het geheugen te verwijderen, wordt een garbage collector met finalizer toegepast, gebaseerd op een combinatie van van referentietelling en het Mark and Sweep-algoritme. De engine wordt gebruikt voor de verwerking van JavaScript in de browser .
volledige compatibiliteit met de specificaties van Ecmascript 5.1 en gedeeltelijke Ecmascript 2015 en 2016 (E6 en E7), inclusief ondersteuning voor het Proxy-object voor virtualisatie van eigenschappen, getypeerde arrays, ArrayBuffer, Node.js Buffer, Encoding API, Symbol-object, etc. Het bevat een ingebouwde debugger, een engine voor het uitvoeren van reguliere expressies en een subsysteem voor Unicode-ondersteuning. Daarnaast zijn er specifieke extensies, zoals ondersteuning voor co-routines, een ingebouwd framework voor logging, een CommonJS-gebaseerd modulesysteem en een bytecode-cache-systeem dat het opslaan en laden van gecompileerde functies mogelijk maakt.
In de nieuwe uitgave nieuwe aanroepen duk_to_stacktrace() en duk_safe_to_stacktrace() voor het verkrijgen van stacktraces, duk_push_bare_array() voor het toevoegen van onafhankelijke array-instanties. De functies duk_require_constructable() en duk_require_constructor_call() zijn vertaald. Verbeterde compatibiliteit met de ES2017-specificatie. Geoptimaliseerd gebruik van arrays en objecten. De CLL-interface duk heeft de optie "—no-auto-complete" toegevoegd om de automatische aanvulling van invoer uit te schakelen.
Bron: opennet.ru
