ืฉื—ืจื•ืจ ืžื ื•ืข JavaScript ื”ืžื•ื˜ื‘ืข Duktape 2.4.0

ื™ืฆื ืœืื•ืจ ืฉื—ืจื•ืจ ืžื ื•ืข JavaScript ื“ื•ืงื˜ื™ื™ืค 2.4.0, ืฉืžื˜ืจืชื• ื”ื˜ืžืขื” ื‘ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ ืคืจื•ื™ืงื˜ื™ื ื‘ืฉืคืช C/C++. ื”ืžื ื•ืข ืงื•ืžืคืงื˜ื™ ื‘ื’ื•ื“ืœื•, ื ื™ื™ื“ ืžืื•ื“ ื•ืฆืจื™ื›ืช ืžืฉืื‘ื™ื ื ืžื•ื›ื”. ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื”ืžื ื•ืข ื›ืชื•ื‘ ื‘-C ื• ื”ืชืคืฉื˜ื•ืช ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT.

ืงื•ื“ ื”-Duktape ืชื•ืคืก ื›-160 kB ื•ืฆื•ืจืš ืจืง 70 kB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM, ื•ื‘ืžืฆื‘ ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ื ืžื•ื›ื” 27 kB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM. ืœืฉื™ืœื•ื‘ Duktape ื‘ืงื•ื“ C/C++ ื”ื•ื ืžืกืคื™ืง ื”ื•ืกืฃ ืงื‘ืฆื™ื duktape.c ื•- duktape.h ืœืคืจื•ื™ืงื˜, ื•ื”ืฉืชืžืฉ API ืฉืœ Duktape ืœืงืจื•ื ืœืคื•ื ืงืฆื™ื•ืช JavaScript ืžืงื•ื“ C/C++ ืื• ืœื”ื™ืคืš. ื›ื“ื™ ืœืฉื—ืจืจ ื—ืคืฆื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ืžื”ื–ื™ื›ืจื•ืŸ, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืืกืคืŸ ืืฉืคื” ืขื ื’ื™ืžื•ืจ, ื”ื‘ื ื•ื™ ืขืœ ื‘ืกื™ืก ืฉื™ืœื•ื‘ ืึทืœื’ื•ึนืจึดื™ืชึฐื ืกืคื™ืจืช ืงื™ืฉื•ืจื™ื ืขื ืืœื’ื•ืจื™ืชื ืกื™ืžื•ืŸ (Mark and Sweep). ื”ืžื ื•ืข ืžืฉืžืฉ ืœืขื™ื‘ื•ื“ JavaScript ื‘ื“ืคื“ืคืŸ NetSurf.

ืžืกืคืง ืชืื™ืžื•ืช ืžืœืื” ืœืžืคืจื˜ื™ Ecmascript 5.1 ื•ื—ืœืงื™ืช ืœืชืžื•ืš Ecmascript 2015 ื•-2016 (E6 ื•-E7), ื›ื•ืœืœ ืชืžื™ื›ืช ืื•ื‘ื™ื™ืงื˜ื™ Proxy ืขื‘ื•ืจ ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ื ื›ืกื™ื, ืžืขืจื›ื™ื ืžืกื•ื’ Typed, ArrayBuffer, Node.js Buffer, Encoding API, Symbol Object ื•ื›ื•'. ื”ื•ื ื›ื•ืœืœ ืžืืชืจ ื‘ืื’ื™ื ืžื•ื‘ื ื”, ืžื ื•ืข ื‘ื™ื˜ื•ื™ ืจื’ื•ืœืจื™ ื•ืชืช-ืžืขืจื›ืช ืœืชืžื™ื›ื” ื‘-Unicode. ื”ืจื—ื‘ื•ืช ืกืคืฆื™ืคื™ื•ืช ืžืกื•ืคืงื•ืช ื’ื, ื›ื’ื•ืŸ ืชืžื™ื›ื” ื‘-coroutine, ืžืกื’ืจืช ืจื™ืฉื•ื ืžื•ื‘ื ื™ืช, ืžื ื’ื ื•ืŸ ื˜ืขื™ื ืช ืžื•ื“ื•ืœ ืžื‘ื•ืกืก CommonJS ื•ืžืขืจื›ืช ืžื˜ืžื•ืŸ ื‘ืชื™ื ื”ืžืืคืฉืจืช ืœืฉืžื•ืจ ื•ืœื˜ืขื•ืŸ ืคื•ื ืงืฆื™ื•ืช ืžื”ื™ื“ื•ืจ.

ื‘ืžื”ื“ื•ืจื” ื”ื—ื“ืฉื” ืžื•ื˜ืžืข ืงืจื™ืื•ืช ื—ื“ืฉื•ืช ืืœ duk_to_stacktrace() ื•- duk_safe_to_stacktrace() ื›ื“ื™ ืœืงื‘ืœ ืขืงื‘ื•ืช ืžื—ืกื ื™ืช, duk_push_bare_array() ื›ื“ื™ ืœื”ื•ืกื™ืฃ ืžื•ืคืขื™ ืžืขืจืš ืขืฆืžืื™ื™ื. ื”ืคื•ื ืงืฆื™ื•ืช duk_require_constructable() ื•-duk_require_constructor_call() ืคื•ืจืกืžื• ืœืฆื™ื‘ื•ืจ. ืชืื™ืžื•ืช ืžืฉื•ืคืจืช ืœืžืคืจื˜ ES2017. ื”ืขื‘ื•ื“ื” ืขื ืžืขืจื›ื™ื ื•ืื•ื‘ื™ื™ืงื˜ื™ื ืขื‘ืจื” ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ื ื•ืกืคื” ืืคืฉืจื•ืช "--no-auto-complete" ืœืžืžืฉืง duk CLI ื›ื“ื™ ืœื”ืฉื‘ื™ืช ื”ืฉืœืžืช ืงืœื˜.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”