Release van de ingebedde JavaScript-engine Duktape 2.4.0

gepubliceerd Release van JavaScript-engine Duktape 2.4.0, gericht op het inbedden in de codebasis van projecten in de C/C++-taal. De motor is compact van formaat, zeer draagbaar en verbruikt weinig hulpbronnen. De broncode van de engine is geschreven in C en worden verspreid onder de MIT-licentie.

De Duktape-code neemt ongeveer 160 kB in beslag en verbruikt slechts 70 kB RAM, en in de modus met laag geheugenverbruik 27 kB RAM. Om Duktape te integreren in C/C++-code genoeg voeg de bestanden duktape.c en duktape.h toe aan het project en gebruik Duktape-API om JavaScript-functies aan te roepen vanuit C/C++-code of omgekeerd. Om ongebruikte objecten uit het geheugen te bevrijden, wordt een garbage collector met een finalizer gebruikt, gebouwd op basis van een combinatie algoritme linktelling met markeringsalgoritme (Mark en Sweep). De engine wordt gebruikt om JavaScript in de browser te verwerken NetSurf.

Biedt volledige compatibiliteit met Ecmascript 5.1-specificaties en gedeeltelijk ondersteunen Ecmascript 2015 en 2016 (E6 en E7), inclusief ondersteuning voor Proxy-objecten voor eigenschapsvirtualisatie, Typed Arrays, ArrayBuffer, Node.js Buffer, Encoding API, Symbol-object, enz. Het bevat een ingebouwde debugger, een reguliere expressie-engine en een subsysteem voor Unicode-ondersteuning. Er zijn ook specifieke uitbreidingen beschikbaar, zoals coroutine-ondersteuning, een ingebouwd logframework, een op CommonJS gebaseerd modulelaadmechanisme en een bytecode-cachingsysteem waarmee u gecompileerde functies kunt opslaan en laden.

In de nieuwe release geïmplementeerd nieuwe oproepen naar duk_to_stacktrace() en duk_safe_to_stacktrace() om stacktraces op te halen, duk_push_bare_array() om onafhankelijke array-instanties toe te voegen. De functies duk_require_constructable() en duk_require_constructor_call() zijn openbaar gemaakt. Verbeterde compatibiliteit met de ES2017-specificatie. Het werken met arrays en objecten is geoptimaliseerd. Optie “--no-auto-complete” toegevoegd aan de duk CLI-interface om voltooiing van invoer uit te schakelen.

Bron: opennet.ru

Voeg een reactie