рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдореВрд▓ рдмрд╛рддреЗрдВ: рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЕрдиреБрдХреВрд▓рдиред рднрд╛рдЧ 1

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдХрдо рдФрд░ рдХрдо рд╕рдордп рдкрд╛рдареНрдпрдХреНрд░рдо "рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛" рдХреЗ рд▓реЙрдиреНрдЪ рддрдХ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдЬ рд╣рдо рдЗрд╕ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдпрд╣ рдкреНрд░рдХрд╛рд╢рди рдЗрди рджреЛ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИ: "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХреЗ рдореВрд▓ рддрддреНрд╡: рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдФрд░ рдЗрдирд▓рд╛рдЗрди рдХреИрд╢рд┐рдВрдЧред рднрд╛рдЧ 1 " , " рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ: рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдФрд░ рдЗрдирд▓рд╛рдЗрди рдХреИрд╢рд┐рдВрдЧред рднрд╛рдЧ 2 тАЭ ред

рд▓реЗрдЦ рдореЗрдВ рдореБрдЦреНрдп рдореВрд▓ рдмрд╛рддреЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд╡реЗ рд╕рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рд╡реА 8 рдХреЗ рд▓рд┐рдП рдЬреЛ рд▓реЗрдЦрдХ ( рдмреЗрдиреЗрдбрд┐рдХреНрдЯ рдФрд░ рдореИрдерд┐рдпрд╕ ) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдПрдХ рдЧрд╣рд░реА рд╕рдордЭ рдЖрдкрдХреЛ рдХреБрд╢рд▓ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред



рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдЪрд░реНрдЪрд╛ рдХреА рдХрд┐ рдХреИрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд░реВрдкреЛрдВ рдФрд░ рдЗрдирд▓рд╛рдЗрди рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред

рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдкрдарди рд▓реЗрдЦреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЛ рджреЗрдЦреЗрдВ ред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕реЗ рдЫреЛрдбрд╝реЗрдВ рдФрд░ рдкрдврд╝реЗрдВред


рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╡реНрдпрд╛рдкрд╛рд░-рд╕реНрддрд░ рдХреЗ рд╕реНрддрд░

рдкрд┐рдЫрд▓реА рдмрд╛рд░, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╣реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╣реИрдВ:



рд╣рдордиреЗ рдпрд╣ рднреА рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЗрдВрдЬрди рд╕реЗ рдЗрдВрдЬрди рддрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВ, рдЕрдиреБрдХреВрд▓рди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЕрдВрддрд░ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХреБрдЫ рдЗрдВрдЬрдиреЛрдВ рдореЗрдВ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рд╕реНрддрд░ рдХреНрдпреЛрдВ рд╣реИрдВ? рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдВрдХреНрд░рдордг рдХреЗ рдмреАрдЪ рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рдпрд╛ рдЗрд╖реНрдЯрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдордп рдЦрд░реНрдЪ рдХрд░рдирд╛ рд╣реИред



рджреБрднрд╛рд╖рд┐рдпрд╛ рдЬрд▓реНрджреА рд╕реЗ рдмрд╛рдпрдЯреЗрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрддрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдХреЗрд▓реЗ рдмрд╛рдпреЛрдЯреЗрдХ рдкрд░реНрдпрд╛рдкреНрдд рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдЕрдиреБрдХреВрд▓рди рд╕рдВрдХрд▓рдХ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдорд╢реАрди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЖрдЗрдП рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рд╡реА 8 рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рд╕реНрдорд░рдг рдХрд░реЛ рдХрд┐ V8 рдореЗрдВ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЗрдЧреНрдирд┐рд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рддреЗрдЬ рджреБрднрд╛рд╖рд┐рдпрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрдЪреНрдЪреЗ рдмрд╛рдпреЛрдЯреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдЧрддрд┐ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ)ред V8 рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЯрд░реНрдмреЛрдлреИрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдорд╢реАрди рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред



рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рджреЗрд░реА рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдХреЗ рдмреАрдЪ рд╡реНрдпрд╛рдкрд╛рд░-рдмрдВрдж рдХрд╛ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХреБрдЫ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдЪрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреВрд▓рди рд╕реНрддрд░ рдЬреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкрд╛рдЗрдбрд░рдореЛрдВрдХреА рдЕрдкрдиреЗ рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рди рд╡рд╛рд▓реЗ рдЖрдпрдирдореЗрдХ рд╕рдВрдХрд▓рдХ рдХреЗ рдмреАрдЪ рдПрдХ рдмреЗрд╕рд▓рд╛рдЗрди рд╕реНрддрд░реАрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИ:



рджреБрднрд╛рд╖рд┐рдпрд╛ рдЬрд▓реНрджреА рд╕реЗ рдмрд╛рдпрдЯреЗрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдпрдЯреЗрдХреЛрдб рд╕реНрд╡рдпрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдзреАрдорд╛ рд╣реИред рдмреЗрд╕рд▓рд╛рдЗрди рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдВрдХрд▓рди IonMonkey рдорд╢реАрди рдХреЛрдб рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХреЛрдб рдмреЗрд╣рдж рдХреБрд╢рд▓ рд╣реЛрддрд╛ рд╣реИред
рдЖрдЗрдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЗрдВрдЬрдиреЛрдВ рдХреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрддреА рд╣реИрдВред рдпрд╣рд╛рдВ рдЧрд░реНрдо рд▓реВрдк рдореЗрдВ, рд╕рдорд╛рди рдХреЛрдб рдЕрдХреНрд╕рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

let result = 0; for (let i = 0; i < 4242424242; ++i) { result += i; } console.log(result); 


V8 рдЗрдЧреНрдирд┐рд╢рди рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рдмрд╛рдЗрдЯрдХреЛрдб рд╢реБрд░реВ рдХрд░рдХреЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдЗрдВрдЬрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдЧрд░реНрдо рд╣реИ рдФрд░ рдЯрд░реНрдмреЛрдлреИрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдХрд╛ рдПрдХ рдореВрд▓ рдорд╢реАрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдЗрд╕реЗ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рдЯрд░реНрдмреЛрдлреИрди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЬрдмрдХрд┐ рдЕрдиреБрдХреВрд▓рди рдЬрд╛рд░реА рд╣реИ, V8 рдЗрдЧреНрдирд┐рд╢рди рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдЬрдм рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдорд╢реАрди рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ, рддреЛ рдпрд╣ рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрди рдЪрд░рдг рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред
SpyderMonkey рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рдмрд╛рдпреЛрдЯреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рднреА рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЗрд╕рд▓рд╛рдЗрди рд╕реНрддрд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣реЙрдЯ рдХреЛрдб рдкрд╣рд▓реЗ рд╡рд╣рд╛рдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╕рд▓рд╛рдЗрди рдХрдВрдкрд╛рдЗрд▓рд░ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдмреЗрд╕рд▓рд╛рдЗрди рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рдкреАрдврд╝реА рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред



рдпрджрд┐ рдмреЗрд╕рд▓рд╛рдЗрди рдХреЛрдб рдХреБрдЫ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕реНрдкрд╛рдЗрдбрд░рдореЛрдВрдХреА рдЕрдВрддрддрдГ IonMonkey рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (IonMonkey frontend) рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ V8 рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ рд╕рдм рдмреЗрд╕рд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЖрдпрдирдордВрдХреАрдЬ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЬрдм рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдмреЗрд╕рд▓рд╛рдЗрди рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдЪрдХреНрд░ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реНрдкрд╛рдЗрдбрд░рдордВрдХреА рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдХреНрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рд╕рдВрдХрд▓рдХ рдХреЗ рдХрд┐рд╕реА рднреА рднрд╛рдЧ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЪрдХреНрд░ рдмрд╛рдИрдЯрдХреЛрдб рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрдХрд▓рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдорд░реНрдкрд┐рдд рд╕рдВрдХрд▓рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред



рдЬрдм рдЬрдирд░реЗрдЯ рдХреЛрдб рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрдВрдЬрди bytecode рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ SimpleJIT рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдлреБрд▓рдЬрд┐рдЯ рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдирдХрд▓ рдХреЗ рджреМрд░рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╡рд┐рд░рд╛рдо рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдкреВрд░реНрдг рд╕рдВрдХрд▓рдХ (рдлреНрд░рдВрдЯрд┐рдпрд░) рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдПрдХ рдЦрд╛рдореА рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдЧрд╛рдореА рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рд╣рдж рддрдХ рдХрд╛рдо рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

JavaScriptCore рдореЗрдВ, рд╕рднреА рдЕрдиреБрдХреВрд▓рди рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдореВрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдХреЛрдИ рдирдХрд▓ рдЪрд░рдг рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рдмрд╕ рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдлрд┐рд░ рдореБрдЦреНрдп рдереНрд░реЗрдб рд╕реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ рд▓реЙрдХрд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред



рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЦреНрдп рдереНрд░реЗрдб рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдХрдЪрд░реЗ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдХреБрдЫ рдЕрд╡рд░реБрджреНрдз рд▓рд╛рдЧрддреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╣рдордиреЗ рдлрд╛рд╕реНрдЯ рдХреЛрдб рдЬреЗрдирд░реЗрд╢рди рдХреЗ рдмреАрдЪ рдЯреНрд░реЗрдб-рдСрдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдЬрдмрдХрд┐ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд┐рдВрдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╛рд╕реНрдЯ рдХреЛрдб рдЬреЗрдирд░реЗрд╢рдиред рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рд╕рдордЭреМрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕реНрдореГрддрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрд╛, рдЬрд┐рд╕рдореЗрдВ рджреЛ рдирдВрдмрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

 function add(x, y) { return x + y; } add(1, 2); 


V8 рдореЗрдВ рдЗрдЧреНрдирд┐рд╢рди рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдРрдб рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВред

 StackCheck Ldar a1 Add a0, [0] Return 


рдмрд╛рдИрдЯреЗрдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ 4 рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ред
рдЬрдм рдХреЛрдб рдЧрд░реНрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, TurboFan рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдорд╢реАрди рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 leaq rcx,[rip+0x0] movq rcx,[rcx-0x37] testb [rcx+0xf],0x1 jnz CompileLazyDeoptimizedCode push rbp movq rbp,rsp push rsi push rdi cmpq rsp,[r13+0xe88] jna StackOverflow movq rax,[rbp+0x18] test al,0x1 jnz Deoptimize movq rbx,[rbp+0x10] testb rbx,0x1 jnz Deoptimize movq rdx,rbx shrq rdx, 32 movq rcx,rax shrq rcx, 32 addl rdx,rcx jo Deoptimize shlq rdx, 32 movq rax,rdx movq rsp,rbp pop rbp ret 0x18 


рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЯреАрдореЗрдВ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЙрди рдЪрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреЛ рд╣рдордиреЗ рдмрд╛рдИрдЯрдХреЛрдб рдореЗрдВ рджреЗрдЦреА рдереАрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдорд╢реАрди рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдорд╢реАрди рдХреЛрдб рдореЗрдВ рдмрд╛рдпрдЯреЗрдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЛ рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рд╕рд┐рд░реНрдл "рд╕рдм рдХреБрдЫ рдЕрдиреБрдХреВрд▓рд┐рдд" рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛, рдЕрдиреБрдХреВрд▓рд┐рдд рдорд╢реАрди рдХреЛрдб рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдХрд╛рд░рдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рд╣реИ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдХреЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ рддреЗрдЬ рдХреЛрдб рдкреАрдврд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреЗрдЬ рдХреЛрдб рдкреАрдврд╝реА рдХреЗ рдмреАрдЪ рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдУрд╡рд░рд╣реЗрдб рдХреА рд▓рд╛рдЧрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рд╕реНрддрд░ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЖрдк рдЕрдзрд┐рдХ рд╕реВрдЪрд┐рдд рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕реНрддрд░ рдХреЗ рдмреАрдЪ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рдмрдВрдж рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХреЗрд╡рд▓ рдЧрд░реНрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдЕрдиреБрдХреВрд▓рди

рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдордиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА рдХрд┐ рдХреИрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдлреЙрд░реНрдо рдФрд░ рдЗрдирд▓рд╛рдЗрди рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЗрдВрдЬрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред



рдкреНрд░рдкрддреНрд░ рдЖрдкрдХреЛ рдЗрдирд▓рд╛рдЗрди рдХреИрд╢ рдпрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЖрдИрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рдкрддреНрд░ рдФрд░ рдЖрдИрд╕реА рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдПрдХ рд╣реА рд╕реНрдерд╛рди рд╕реЗ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рддрдХ рдмрд╛рд░-рдмрд╛рд░ рдкрд╣реБрдВрдЪ рдХреЛ рдЧрддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛, рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рд╣рдо рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рддреВрдлрд╛рдиреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣рдо рдЖрдкрдХреЛ "рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛" рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░ рдПрдХ рдЦреБрд▓реЗ рджрд┐рди рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi447870/


All Articles