Π€ΡΠ΅Π½ΡΠΊΠΈΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊ Π€Π°Π±ΡΠΈΡ ΠΠ΅Π»Π°Ρ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ QEMU ΠΈ FFmpeg, ΡΡΡΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ Π½Π°ΠΉ-Π±ΡΡΠ·Π°ΡΠ° ΡΠΎΡΠΌΡΠ»Π° Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΠ»ΠΎΡΠΎ ΠΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ , ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²ΠΈΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» Π½Π° JavaScript . ΠΠ²ΠΈΠ³Π°ΡΠ΅Π»ΡΡ Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½ ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π² Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° Π½Π° MIT. ΠΠ°Π»ΠΈΡΠ½Π° Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Π² WebAssembly Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Emscripten ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π±ΡΠ°ΡΠ·ΡΡΠΈ.
ΠΠ½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° JavaScript Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ES2019, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΈ ΠΈ ΠΏΡΠΎΠΊΡΠΈΡΠ°. ΠΠΎ ΠΈΠ·Π±ΠΎΡ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π° JavaScript, ΠΊΠ°ΡΠΎ ΡΠΈΠΏΠΎΠ²Π΅ BigInt ΠΈ BigFloat, ΠΊΠ°ΠΊΡΠΎ ΠΈ . ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° QuickJS Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΈ Π°Π½Π°Π»ΠΎΠ·ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ΅ΡΡΠ°
bench-v8 Π΅ ΠΏΡΠ΅Π΄ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Ρ 35%, ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄Π²Π° ΠΏΡΡΠΈ ΡΡΠΈ ΠΏΡΡΠΈ ΠΈ ΡΠ΅Π΄Π΅ΠΌ ΠΏΡΡΠΈ.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΈ qjs ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° JavaScript ΠΊΠΎΠ΄ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΡΡ qjsc, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
- ΠΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½ ΠΈ Π»Π΅ΡΠ΅Π½ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΠΎΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ C ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π·Π° Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅. ΠΠ°ΠΉ-ΠΏΡΠΎΡΡΠΎΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 190 KB;
- ΠΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΊΡΠ°ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅. ΠΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° 56 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅ΡΡΠ° Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ ECMAScript ΠΎΡΠ½Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 100 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π½Π° Π΅Π΄Π½ΠΎ ΡΠ΄ΡΠΎ ββΠ½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Π½Π°ΡΡΠΎΠ»Π΅Π½ ΠΊΠΎΠΌΠΏΡΡΡΡ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ½Π΅ΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ 300 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ;
- ΠΠΎΡΡΠΈ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ES2019 ΠΈ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ B, ΠΊΠΎΠ΅ΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΠΡΠ»Π½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΎΡ ECMAScript Test Suite;
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Javascript ΠΊΠΎΠ΄ Π² ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π±Π΅Π· Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ;
- Π‘ΡΠ±ΠΈΡΠ°Ρ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΏΡΠ΅Π±ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Π±Π΅Π· ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ;
- ΠΠ°Π±ΠΎΡ ΠΎΡ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² JavaScript;
- Shell Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°;
- ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π°Π΄ C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°.
ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΡΠΈ ΡΡΠΏΡΡΡΡΠ²Π°ΡΠΈ C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² QuickJS ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°:
- libregexp - Π±ΡΡΠ·ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ, Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° Javascript ES 2019;
- libunicode - ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Unicode;
- libbf - Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ ΠΈ ΡΡΠ°Π½ΡΡΠ΅Π½Π΄Π΅Π½ΡΠ°Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠΎΡΠ½ΠΎ Π·Π°ΠΊΡΡΠ³Π»ΡΠ²Π°Π½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
