JavaScript-mootori väljalaskmine , mis on suunatud C/C++ projekti koodibaasi integreerimisele. Mootor on kompaktne, kõrgelt ülekantav ja madala ressursikasutusega. Mootori allikakood on kirjutatud C keeles ja MIT litsentsi alusel.
Duktape kood võtab umbes 160 kB ja kasutab ainult 70 kB RAM-i, madala mälu tarbimise režiimis aga 27 kB RAM-i. Duktape'i integreerimiseks C/C++ koodi projektis duktape.c ja duktape.h failide lisamisest ning kasutamisest JavaScripti funktsioonide kutsumiseks C/C++ koodist või vastupidi. Mälus kasutamata objektide vabastamiseks rakendatakse kokkuvõttega prügikoristajat, mis põhineb kombinatsioonil viidete lugemise ja märgpuhastus (Mark and Sweep) algoritmist. Mootorit kasutatakse JavaScripti töötlemiseks brauseris .
Tagatakse täielik ühilduvus Ecmascript 5.1 spetsiifikatsioonidega ja osaline Ecmascript 2015 ja 2016 (E6 ja E7), sealhulgas Proxy objekti tugi omaduste virtualiseerimiseks, tüüpide massiivid, ArrayBuffer, Node.js Buffer, Encoding API, Symbol objekt jne. Komplektil on sisseehitatud tõrkefinder, regulaaravaldiste töötlemise mootori ja Unicode'i toetasüsteem. Samuti pakutakse spetsiifilisi laiendusi, nagu näiteks kooperatiivide tugi, sisseehitatud logimise raamistik, CommonJS-põhine moodulite laadimise mehhanism ja sümbioosi salvestamise süsteem, mis võimaldab salvestada ja laadida kompileeritud funktsioone.
Uues väljaandes uued kõned duk_to_stacktrace() ja duk_safe_to_stacktrace() virnastustõmmiste saamiseks, duk_push_bare_array() sõltumatute massiivi eksemplaride lisamiseks. Avalikuks on muudetud funktsioonid duk_require_constructable() ja duk_require_constructor_call(). Parandatud ühilduvust ES2017 spetsiifikaga. Optimeeritud töö massiivide ja objektidega. Duki CLI-liidesele on lisatud valik „—no-auto-complete”, et sissekanne automaatne täitmine keelata.
Allikas: opennet.ru
