рд╣рд╛рд▓ рд╣реА рдореЗрдВ , рдиреЛрдб 12 рдХрд╛ рдирд╛рдо Erbium
рдЧрдпрд╛ рдерд╛ , рдЬрд┐рд╕рдХрд╛ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд░реНрдерди (LTS) рдЕрдХреНрдЯреВрдмрд░ 2019 рд╕реЗ рдЕрдкреНрд░реИрд▓ 2022 рддрдХ рд░рд╣реЗрдЧрд╛ред
рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрд╣рд╛рд░ рдФрд░ рд╕реБрдзрд╛рд░ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ V8 рдХреЗ рд╣реБрдб рдХреЗ рддрд╣рдд, рдиреЛрдб рдХреЛ рд╕рднреА рдЗрдВрдЬрди рд╕реБрдзрд╛рд░ рднреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред

import/export
рд╕рдорд░реНрдерди
рдиреЛрдб ECMAScript рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЪрд░рдг 3 рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреЗрд╡рд▓ --experimental-modules
рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рдереАред рдЬрдм рддрдХ рдиреЛрдб рдПрд▓рдЯреАрдПрд╕ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдЗрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
рдИрдПрд╕ 6 рдореЗрдВ рдорд╛рдирдХреАрдХрд░рдг рдХреЗ рдмрд╛рдж рд╕реЗ рдЬреЗрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп import/export
рдЙрдкрдпреЛрдЧ import/export
рд╡рд╛рд▓рд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдиреЛрдб рдХреЗ рдкреАрдЫреЗ рдХреА рдЯреАрдо рдиреЗ рдореВрд▓ рд╕рдорд░реНрдерди рдкрд░ рд▓рдЧрди рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЪрд░рдг 0 рд╕реЗ рдиреЛрдб 8.0 рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдереАред рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬ рдЙрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдХрджрдо рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдХрдкреНрд░рд┐рдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ <script type="module">
ред
рдЪрд░рдг 3 рд╕реЗ, ES рдореЙрдбрд▓ рд╕реЗ рддреАрди import
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рд╣реЛрдЧрд╛:
рд╡реЗрдирд┐рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
import module from 'cjs-library'
рдЖрдк рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП import()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред import()
Promise
рдХрд░рддрд╛ рд╣реИ рдФрд░ ES рдореЙрдбрд▓ рдФрд░ рдХреЙрдорди рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╡реА 8
рдиреЛрдб 12 рд╢реБрд░реВ рдореЗрдВ V8 7.4 рдкрд░ рдЪрд▓реЗрдЧрд╛ рдФрд░ рдЕрдВрддрддрдГ 7.6 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рд╣реЛрдЧрд╛ред V8 рдЯреАрдо рдПрдХ ABI (рдПрдкреНрд▓реАрдХреЗрд╢рди рдмрд╛рдЗрдирд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕) рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реБрдИред V8 7.4 рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░ рддреЗрдЬреА рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди, рдмреЗрд╣рддрд░ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдФрд░ рдЙрдиреНрдирдд ECMAScript рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рд╣реИрдВред
Async рд╕реНрдЯреИрдХ рдХреЗ рдирд┐рд╢рд╛рди
рдЖрдЗрдП рдЗрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ:
async function testAsyncStacktrace() { await killme(); return 42; } async function killme() { await Promise.resolve(); throw new Error('#Feelsbadman'); } testAsyncStacktrace().catch(error => console.log(error.stack));
рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░, рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓реЗрдЧрд╛:
Error: #Feelsbadman at killme (test.js:8:11) at process._tickCallback (internal/process/next_tick.js:68:7) at Function.Module.runMain (internal/modules/cjs/loader.js:721:11) at startup (internal/bootstrap/node.js:228:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрджреЗрд╢ рдореЗрдВ testAsyncStacktrace
рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЕрдм --async-stack-traces
рдзреНрд╡рдЬ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ, рдФрд░ рд▓реЙрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
Error: #Feelsbadman at killme (test.js:8:11) at async testAsyncStacktrace (test.js:2:5)
рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдиреЗ рдкрд░ рддреНрд╡рд░рд┐рдд рдХреЙрд▓
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдХрдо / рдЕрдзрд┐рдХ рддрд░реНрдХреЛрдВ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ (рдпрд╛рдиреА рдХрдо рдпрд╛ рдЕрдзрд┐рдХ рдШреЛрд╖рд┐рдд рдФрдкрдЪрд╛рд░рд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░реЗрдВ)ред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЕрдВрдбрд░-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ , рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдпрд╣ рдУрд╡рд░-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ ред рддрд░реНрдХреЛрдВ рдХреА рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ undefined
рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрднреА рднреА arguments
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╛рдХреА рдкреИрд░рд╛рдореАрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореИрд▓рд╛ рдореЛрдб рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЧреИрд░-рдорд╛рдирдХреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди.рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк . arguments
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред V8 рдореЗрдВ, рдпрд╣ рддрд░реНрдХ рдЕрдиреБрдХреВрд▓рди рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдРрд╕реЗ рддрд░реАрдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, V8 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд░реНрдХ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ , рдХреЙрд▓ рдУрд╡рд░рд╣реЗрдб рдХреЛ 60% рддрдХ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред

рд╡рд┐рд╡рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рддреНрд╡рд░рд┐рдд рдкрд╛рд░реНрд╕рд┐рдВрдЧ
Chrome рдореЗрдВ, рдмрдбрд╝реА рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдЙрдирдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╡рд░реНрдХрд░ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред V8 7.4 рдиреЗ UTF-8 рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг 8% рд╕реНрдкреАрдбрдЕрдк рд╣реБрдЖред

рдЖрд░реЗрдЦ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмреВрдВрдж рд╕реНрдЯреНрд░реАрдо рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИред
рдмреЗрд╣рддрд░ рд╣реБрдЖ await
--async-stack-traces
рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде, --harmony-await-optimization
рдзреНрд╡рдЬ рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИред рдпрд╣рд╛рдБ рд╡рд┐рд╡рд░рдгред
рдирд┐рдЬреА рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░
V8 рдореЗрдВ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдиреЛрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдИ рд╣реИред рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░ рдХрдХреНрд╖рд╛ рдХреЗ рдмрд╛рд╣рд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд░ рд╕реЗ рдкрд╣рд▓реЗ #
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
class HelloThere { #hidden = 'Hidden'; get hidden() { return this.#hidden; } set hidden(txt) { this.#hidden = txt; } hi() { console.log(`Hello, ${this.#hidden}`); } }
рдЬрдм рдЖрдк рдмрд╛рд╣рд░ рд╕реЗ #hidden
рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред
const hello = new HelloThere(); hello.#hidden = 'Visible';
рдЬрд▓реНрджреА рд╢реБрд░реВ рдХрд░реЛ
рдиреЛрдб 12 рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд░реНрдорд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдФрд░ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░реЗрдЧрд╛ред рдореБрдЦреНрдп рдереНрд░реЗрдб рдореЗрдВ рдЗрд╕ рдХреИрд╢ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг, рдкреНрд░рд╛рд░рдВрдн рд╕рдордп 30% рддрдХ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
TLS рдФрд░ рд╕реБрд░рдХреНрд╖рд╛
рдиреЛрджрд╛ рдЕрдм рдЯреАрдПрд▓рдПрд╕ 1.3 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЯреАрдПрд▓рдПрд╕ 1.3 рдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдмрд╣реБрдд рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛ рд░рд╣рд╛ рд╣реИред TLS 1.3 рдХреА рд╢реБрд░реВрдЖрдд рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреА рдЧреЛрдкрдиреАрдпрддрд╛ рдмрдврд╝реЗрдЧреА, рд╕рд╛рде рд╣реА HTTPS рдореЗрдВ рд╣реИрдВрдбрд╢реЗрдХ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХрдо рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддреЗрдЬреА рдЖрдПрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреАрдПрд▓рдПрд╕ 1.0 рдФрд░ 1.1 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИрдВ, рдФрд░ crypto
рд╕реЗ рд╣рдЯрд╛рдП рдЧрдП рддрд░реАрдХреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЧрддрд┐рд╢реАрд▓ рдХреВрд▓реНрд╣реЗ рдХрд╛ рдЖрдХрд╛рд░
рдкрд╣рд▓реЗ, 700 V (32-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо) рдпрд╛ 1400MB (64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо) рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ V8 рд╣реАрдк рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдиреЛрдб рдорд╢реАрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдвреЗрд░ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдЧрд╛ред
рдХреВрд▓реНрд╣реЗ рдбрдВрдк рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рдиреЛрдб 12 рдбрдВрдк рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдореЗрдореЛрд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд░рд┐рдкреЛрд░реНрдЯ
рдиреЛрдбрд╛ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрджрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ (рдкреНрд░рджрд░реНрд╢рди, рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ, рдореЗрдореЛрд░реА, рдХреНрд░реИрд╢, рдЖрджрд┐) рдХреЗ рдирд┐рджрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рджреЗрд╢реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕реБрдзрд╛рд░
рдиреЛрдб 12 рдПрди-рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛рд░реА рд╣реИ ред рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдиреЗ рд╕рдорд░реНрдерди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдиреЛрдб 12 рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рд╣реИрдВред рдкреВрд░рд╛ CHANGELOG рдЧрд┐рддреБрдм рдФрд░ рд╕рд╛рдЗрдЯ рдкрд░ рд╣реА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред