ΠΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ W3C ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΡΠ΅ΡΠ½ΠΎΠ²ΠΈ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈΡ ΠΊΠΎΠ΄ WebAssembly 2.0 ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡ Ρ Π½Π΅Π³ΠΎ API, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠ°ΡΠ·ΡΡΠΈ ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. WebAssembly ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π² ΠΊΠΎΠ΄, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ Π±ΡΠ°ΡΠ·ΡΡΠ°, Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° JIT Π·Π° WebAssembly ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π±Π»ΠΈΠ·ΠΊΠΎ Π΄ΠΎ Π½Π°ΡΠΈΠ²Π½ΠΈΡ ΠΊΠΎΠ΄.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° WebAssembly ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π²ΡΠΊ, ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΡ Ρ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈ 3D, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ³ΡΠΈ, ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠ΅Π· ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° Π½Π° ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΠΈ Π΅Π·ΠΈΡΠΈ, ΠΊΠ°ΡΠΎ C/C++.
Π‘ΡΠ΅Π΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° WebAssembly ΡΠ΅ ΠΎΡΠΊΡΠΎΡΠ²Π°Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ, ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ WebAssembly ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡΠ° ΠΊΠ°ΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π² ΠΊΠ°ΠΊΠ²ΠΈΡΠΎ ΠΈ Π΄Π° Π±ΠΈΠ»ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° Π΄ΠΎ Π±ΡΠ°ΡΠ·ΡΡΠΈΡΠ΅.
W3C ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΡΡΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° WebAssembly 2.0:
- WebAssembly Core β ΠΎΠΏΠΈΡΠ²Π° Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈΡ ΠΊΠΎΠ΄ WebAssembly. Π‘Π²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ WebAssembly ΡΠ΅ΡΡΡΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π² ΡΠΎΡΠΌΠ°Ρ Β«.wasmΒ», ΡΡ ΠΎΠ΄Π΅Π½ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Β«.classΒ» Π² Java ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΊΠΎΠ΄ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
- WebAssembly JavaScript Interface β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ API Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ JavaScript. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ WebAssembly. ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° WebAssembly Π΅ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΌΠΎΠ΄Π΅Π»Π° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° JavaScript ΠΈ Π²ΡΠΈΡΠΊΠΎΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° JavaScript ΠΊΠΎΠ΄.
- WebAssembly Web API β ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Promise Π·Π° Π·Π°ΡΠ²ΠΊΠ° ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ Β«.wasmΒ». Π€ΠΎΡΠΌΠ°ΡΡΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ WebAssembly Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° Π½Π°ΡΠ°Π»ΠΎ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ, Π±Π΅Π· Π΄Π° ΡΠ΅ ΡΠ°ΠΊΠ° ΠΏΡΠ»Π½ΠΎΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ·ΠΈΠ²ΡΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² WebAssembly 2.0, Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΡΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ°:
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²Π΅ΠΊΡΠΎΡΠ΅Π½ ΡΠΈΠΏ v128 ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Π³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΡΠ»Π΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (SIMD, single instruction multiple data).
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²Π½ΠΎΡ ΠΈ ΠΈΠ·Π½ΠΎΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΈ (mutable) Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π·Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ΅ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² C++.
- ΠΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠΏ float Π² int, ΠΊΠΎΠΈΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°, Π²ΡΡΡΠ°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ (ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ΅ Π·Π° SIMD).
- ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π½Π°ΠΊΠ° Π½Π° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΠ»ΠΎΡΠΎ, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ Π·Π½Π°ΠΊΠ° ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°).
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΎΡ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ).
- ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° JavaScript ΡΡΠ½ΠΊΡΠΈΠΈ BigInt64Array ΠΈ BigUint64Array Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ JavaScript ΡΠΈΠΏΠ° BigInt ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² WebAssembly.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ (funcref ΠΈ externref) ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (select, ref.null, ref.func ΠΈ ref.is_null).
- ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ memory.copy, memory.fill, memory.init ΠΈ data.drop Π·Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
- ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ (table.set, table.get, table.size, table.grow). ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅, Π²Π½ΠΎΡ ΠΈ ΠΈΠ·Π½ΠΎΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±Π»ΠΈΡΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ». Π€ΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅/ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ (table.copy, table.init ΠΈ elem.drop).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
