JavaScript dzinēja izlaišana , kas ir paredzēts iekļaušanai C/C++ projektu kodu bāzē. Dzinējam ir kompakts izmērs, augsta pārnesamība un zema resursu patēriņš. Dzinēja avota kods ir uzrakstīts C valodā un ir MIT licences ietvaros.
Duktape kods aizņem apmēram 160 kB un patērē tikai 70 kB RAM, bet zemas atmiņas patēriņa režīmā 27 kB RAM. Lai integrētu Duktape C/C++ kodā jāpievieno projektam faili duktape.c un duktape.h, un jāizmanto lai izsauktu JavaScript funkcijas no C/C++ vai otrādi. Neizmantotu objektu atbrīvošanai no atmiņas tiek izmantots atkritumu savācējs ar finalizatoru, kas balstīts uz kombināciju atskaišu skaitīšanas un marķēšanas (Mark and Sweep) algoritmiem. Dzinējs tiek izmantots JavaScript apstrādei pārlūkprogrammā .
Pilnīga saderība ar Ecmascript 5.1 specifikācijām un daļēja Ecmascript 2015 un 2016 (E6 un E7), tostarp atbalsts Proxy objektam, lai virtuāli izmantotu īpašības, tipizētajiem masīviem, ArrayBuffer, Node.js Buffer, Encoding API, Symbol objektam utt. Iekļauts iebūvētais atkļūdošanas rīks, regulāro izteiksmju izpildes dzinējs un Unicode atbalsta apakšsistēma. Tiek piedāvātas specifiskas paplašināšanas, piemēram, atbalsts korutinām, integrēta žurnālfiksācijas sistēma, moduli ielādes mehānisms, kas balstīts uz CommonJS, bajtkoda kešatmiņas sistēma, kas ļauj saglabāt un ielādēt kompilētās funkcijas.
Jaunajā izlaidumā jaunas funkcijas duk_to_stacktrace() un duk_safe_to_stacktrace() kaudzes izsekošanai, duk_push_bare_array() neatkarīgu masīvu pievienošanai. Publiskās funkcijas duk_require_constructable() un duk_require_constructor_call() ir tulkotas. Uzlabota saderība ar ES2017 specifikāciju. Optimizēta masīvu un objektu apstrāde. CLI saskarnei duk pievienota opcija "—no-auto-complete" automātiskās pabeigšanas izslēgšanai.
Avots: opennet.lv
