Paglabas ng naka-embed na JavaScript engine na Duktape 2.4.0

Nai-publish Paglabas ng JavaScript engine Duktape 2.4.0, na naglalayong i-embed sa code base ng mga proyekto sa wikang C/C++. Ang makina ay compact sa laki, mataas na portable at mababang resource consumption. Ang source code ng engine ay nakasulat sa C at kumalat sa ilalim ng lisensya ng MIT.

Ang Duktape code ay tumatagal ng humigit-kumulang 160 kB at kumokonsumo lamang ng 70 kB ng RAM, at sa mababang memory consumption mode ay 27 kB ng RAM. Upang isama ang Duktape sa C/C++ code ay sapat magdagdag ng mga file duktape.c at duktape.h sa proyekto, at gamitin Duktape API para tawagan ang mga function ng JavaScript mula sa C/C++ code o vice versa. Upang palayain ang mga hindi nagamit na bagay mula sa memorya, ang isang kolektor ng basura na may isang finalizer ay ginagamit, na binuo batay sa isang kumbinasyon algorithm pagbibilang ng link gamit ang marking algorithm (Mark at Sweep). Ang makina ay ginagamit upang iproseso ang JavaScript sa browser NetSurf.

Nagbibigay ng ganap na pagiging tugma sa mga detalye ng Ecmascript 5.1 at bahagyang sinusuportahan Ecmascript 2015 at 2016 (E6 at E7), kasama ang Proxy object support para sa virtualization ng property, Typed Arrays, ArrayBuffer, Node.js Buffer, Encoding API, Symbol object, atbp. Kabilang dito ang isang built-in na debugger, isang regular na expression engine, at isang subsystem para sa suporta sa Unicode. Nagbibigay din ng mga partikular na extension, tulad ng suporta sa coroutine, built-in na balangkas ng pag-log, isang mekanismo sa paglo-load ng module na nakabatay sa CommonJS, at isang bytecode caching system na nagbibigay-daan sa iyong mag-save at mag-load ng mga pinagsama-samang function.

Sa bagong pakawalan ipinatupad mga bagong tawag sa duk_to_stacktrace() at duk_safe_to_stacktrace() para makakuha ng mga stack trace, duk_push_bare_array() para magdagdag ng mga independent array instance. Ang mga function na duk_require_constructable() at duk_require_constructor_call() ay ginawang pampubliko. Pinahusay na pagiging tugma sa detalye ng ES2017. Ang pagtatrabaho sa mga array at object ay na-optimize. Idinagdag ang opsyong "--no-auto-complete" sa interface ng duk CLI upang huwag paganahin ang pagkumpleto ng input.

Pinagmulan: opennet.ru

Magdagdag ng komento