ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΠΎΡ‚ JavaScript ΠΌΠΎΡ‚ΠΎΡ€ Duktape 2.4.0

објавСно ИзданиС Π½Π° ΠΌΠΎΡ‚ΠΎΡ€ΠΎΡ‚ JavaScript Duktape 2.4.0, насочСни ΠΊΠΎΠ½ Π²Π³Ρ€Π°Π΄ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ ΠΊΠΎΠ΄Π½Π°Ρ‚Π° Π±Π°Π·Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ C/C++. ΠœΠΎΡ‚ΠΎΡ€ΠΎΡ‚ Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ ΠΏΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°, ΠΌΠ½ΠΎΠ³Ρƒ прСнослив ΠΈ ниска ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ° Π½Π° рСсурси. Π˜Π·Π²ΠΎΡ€Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° ΠΌΠΎΡ‚ΠΎΡ€ΠΎΡ‚ Π΅ напишан Π²ΠΎ C ΠΈ ΡˆΠΈΡ€Π΅ΡšΠ΅ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° MIT.

Duktape ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π°Ρ„Π°ΡœΠ° ΠΎΠΊΠΎΠ»Ρƒ 160 kB ΠΈ Ρ‚Ρ€ΠΎΡˆΠΈ само 70 kB RAM, Π° Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΌΠ°Π»Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° 27 kB RAM. Π—Π° Π΄Π° сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π° 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), Π²ΠΊΠ»ΡƒΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° прокси ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π°, ΠΎΡ‚Ρ‡ΡƒΠΊΡƒΠ²Π°Π½ΠΈ Π½ΠΈΠ·ΠΈ, ArrayBuffer, Node.js Ρ‚Π°ΠΌΠΏΠΎΠ½, API Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°ΡšΠ΅, ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ Π½Π° симбол ΠΈΡ‚Π½. Π’ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° Π²Π³Ρ€Π°Π΄Π΅Π½ Π΄Π΅Π±Π°Π³Π΅Ρ€, ΠΌΠΎΡ‚ΠΎΡ€ со Ρ€Π΅Π³ΡƒΠ»Π°Ρ€Π΅Π½ ΠΈΠ·Ρ€Π°Π· ΠΈ потсистСм Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° Π£Π½ΠΈΠΊΠΎΠ΄. ОбСзбСдСни сС ΠΈ спСцифични СкстСнзии, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС корутинска ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°, Π²Π³Ρ€Π°Π΄Π΅Π½Π° Ρ€Π°ΠΌΠΊΠ° Π·Π° Π»ΠΎΠ³ΠΈΡ€Π°ΡšΠ΅, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° CommonJS ΠΈ систСм Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ Π½Π° Π±Π°Ρ˜Ρ‚Π΅ΠΊΠΎΠ΄ кој Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π°Ρ‚Π΅ ΠΈ Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ΠΎ Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π΄ΠΎ duk_to_stacktrace() ΠΈ duk_safe_to_stacktrace() Π·Π° Π΄Π° сС Π΄ΠΎΠ±ΠΈΡ˜Π°Ρ‚ Ρ‚Ρ€Π°Π³ΠΈ ΠΎΠ΄ стСк, duk_push_bare_array() Π·Π° додавањС нСзависни ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ†ΠΈ ΠΎΠ΄ Π½ΠΈΠ·Π°. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ duk_require_constructable() ΠΈ duk_require_constructor_call() сС објавСни. ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° компатибилност со ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ES2017. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° со Π½ΠΈΠ·ΠΈ ΠΈ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π°. Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° β€ž--Π½Π΅-автоматско ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚ΠΈΡ€Π°ΡšΠ΅β€œ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΎΡ‚ duk CLI Π·Π° Π΄Π° сС ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π·Π°Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π²Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€