izdanje JavaScript motora , usmjerenog na ugradnju u kodnu bazu projekata na jeziku C/C++. Motor se odlikuje kompaktnom veličinom, visokom prenosivošću i niskom potrošnjom resursa. Izvorni kod motora napisan je na jeziku C i pod MIT licencom.
Kod Duktape zauzima oko 160 kB i potroši samo 70kB RAM-a, a u režimu niske potrošnje memorije 27kB RAM-a. Za integraciju Duktape u kod na C/C++ dodajte u projekt datoteke duktape.c i duktape.h, i koristite za pozivanje funkcija na JavaScriptu iz koda na C/C++ ili obrnuto. Za oslobađanje neiskorištenih objekata iz memorije koristi se sakupljač smeća s finalizatorom, temeljen na kombinaciji brojenja referenci s algoritmom označavanja (Mark and Sweep). Motor se koristi za obradu JavaScript-a u pregledniku .
Osigurava punu usklađenost sa specifikacijama Ecmascript 5.1 i djelomičnu Ecmascript 2015 i 2016 (E6 i E7), uključujući podršku za objekt Proxy za virtualizaciju svojstava, tipizirane nizove, ArrayBuffer, Node.js Buffer, Encoding API, objekt Symbol itd. Uključuje ugrađeni debager, motor za izvođenje regularnih izraza i podsustav za podršku Unicode-u. Također su osigurana specifična proširenja, poput podrške za kooperativne zadatke, ugrađenog okvira za evidentiranje, mehanizma učitavanja modula temeljenog na CommonJS, sustava predmemoriranja bajtkoda koji omogućuje spremanje i učitavanje kompiliranih funkcija.
U novom izdanju novi pozivi duk_to_stacktrace() i duk_safe_to_stacktrace() za dobivanje tragova steka, duk_push_bare_array() za dodavanje neovisnih instanci nizova. Na popis javnih prevedene su funkcije duk_require_constructable() i duk_require_constructor_call(). Poboljšana usklađenost sa specifikacijom ES2017. Optimiziran je rad s nizovima i objektima. U CLI sučelje duk dodana opcija "--no-auto-complete" za isključivanje automatskog dovršavanja unosa.
Izvor: opennet.ru
