JavaScript mootorite väljaandmine , mis on suunatud C/C++ projektide koodibaasi integreerimisele. Mootor on kompaktne, suure ülekantavuse ja madala ressursitarbimisega. Mootori lähtekood on kirjutatud C keeles ja on MIT litsentsi all.
Duktape kood võtab umbes 160 kB ja tarbib vaid 70 kB RAM-i, madala mälu kasutamise režiimis 27 kB RAM-i. Duktape integreerimiseks C/C++ koodi lisage projekti failid duktape.c ja duktape.h ning kasutage JavaScripti funktsioonide kutsumiseks C/C++ koodist või vastupidi. Mälust kasutamata objektide vabastamiseks kasutatakse prügikorjajat koos finaliseerijaga, mis põhineb kombinatsioonil ja märgistamisalgoritmist (Mark and Sweep). Mootorit kasutatakse JavaScripti töötlemiseks brauseris .
Tagatud on täielik ühilduvus Ecmascript 5.1 spetsifikatsioonidega ja osaline Ecmascript 2015 ja 2016 (E6 ja E7), sealhulgas Proxy objekti tugi omaduste virtualiseerimiseks, tüübitud massiivide, ArrayBuffer, Node.js Buffer, Encoding API, Symbol objekt jne. Kompositsioon sisaldab sisseehitatud debugeerijat, regulaaravaldise täitmise mootorit ja Unicode toe alamüsteemi. Samuti pakutakse spetsiifilisi laiendusi, nagu korütmi toe, sisseehitatud logimise raamistik, CommonJS-l põhinev moodulite laadimise mehhanism ja baitkoodi vahemälu, mis võimaldab salvestada ja laadida kompileeritud funktsioone.
Uues väljaandes uus duk_to_stacktrace() ja duk_safe_to_stacktrace() kutsete võimalus virnastamisjälgede saamiseks, duk_push_bare_array() sõltumatute massiivide eksemplaride lisamiseks. Avalikku funktsioonide hulka on tõlgitud duk_require_constructable() ja duk_require_constructor_call(). Parendatud ühilduvust ES2017 spetsifikatsiooniga. Optimeeritud töö massiivide ja objektidega. CLI-liidese duk juurde on lisatud valik "—no-auto-complete", et keelata sisendi automaatne täiendamine.
Allikas: opennet.ru
