Ներկառուցված JavaScript շարժիչի թողարկում Duktape 2.4.0

հրապարակված JavaScript շարժիչի թողարկում Duktape 2.4.0, որը նպատակաուղղված է C/C++ լեզվով նախագծերի կոդերի բազայի մեջ ներառելուն։ Շարժիչը կոմպակտ չափսերով է, շատ շարժական և ռեսուրսների ցածր սպառում: Շարժիչի սկզբնական կոդը գրված է C և տարածվել MIT լիցենզիայի ներքո:

Duktape կոդը զբաղեցնում է մոտ 160 կԲ և սպառում է ընդամենը 70 կԲ օպերատիվ հիշողություն, իսկ ցածր հիշողության սպառման ռեժիմում՝ 27 կԲ օպերատիվ հիշողություն: Duktape-ը C/C++ կոդի մեջ ինտեգրելու համար բավարար է ավելացնել duktape.c և duktape.h ֆայլերը նախագծին և օգտագործել Duktape API JavaScript ֆունկցիաները C/C++ կոդից կանչելու համար կամ հակառակը: Չօգտագործված առարկաները հիշողությունից ազատելու համար օգտագործվում է աղբահանիչ՝ վերջնականացուցիչով, որը կառուցված է համակցության հիման վրա։ ալգորիթմ հղումների հաշվարկը նշագրման ալգորիթմով (Mark and Sweep): Շարժիչը օգտագործվում է զննարկիչում JavaScript-ը մշակելու համար NetSurf- ը.

Ապահովում է ամբողջական համատեղելիություն Ecmascript 5.1 բնութագրերի հետ և մասնակի աջակցություն Ecmascript 2015 և 2016 (E6 և E7), ներառյալ Proxy օբյեկտի աջակցությունը սեփականության վիրտուալացման համար, Typed Arrays, ArrayBuffer, Node.js Buffer, Encoding API, Symbol օբյեկտ և այլն: Այն ներառում է ներկառուցված վրիպազերծիչ, սովորական արտահայտման շարժիչ և Unicode-ի աջակցության ենթահամակարգ: Տրամադրվում են նաև հատուկ ընդլայնումներ, ինչպիսիք են կորուտին աջակցությունը, ներկառուցված գրանցման շրջանակը, CommonJS-ի վրա հիմնված մոդուլի բեռնման մեխանիզմը և բայթ կոդերի քեշավորման համակարգ, որը թույլ է տալիս պահպանել և բեռնել կոմպիլյատորային գործառույթները:

Նոր թողարկման մեջ իրականացվել է նոր զանգեր դեպի duk_to_stacktrace() և duk_safe_to_stacktrace()՝ ստեկի հետքեր ստանալու համար, duk_push_bare_array()՝ զանգվածների անկախ օրինակներ ավելացնելու համար: duk_require_constructable() և duk_require_constructor_call() ֆունկցիաները հրապարակվել են: Բարելավված համատեղելիություն ES2017 ճշգրտման հետ: Զանգվածների և օբյեկտների հետ աշխատանքը օպտիմիզացվել է: duk CLI ինտերֆեյսին ավելացրել է «--առանց ավտոմատ լրացման» տարբերակը՝ մուտքագրման լրացումն անջատելու համար:

Source: opennet.ru

Добавить комментарий