Оптимизирует ли V8 внутренние функции на основе значений закрытия?Javascript

Форум по Javascript
Anonymous
Оптимизирует ли V8 внутренние функции на основе значений закрытия?

Сообщение Anonymous »

Например: < /p>

Код: Выделить всё

function makeFunc(a,b,c,d,e) {
return () => {
if (a) { /* do something expensive not referencing b,c,d,e */ }
if (b) { /* do something expensive not referencing a,c,d,e */ }
if (c) { /* do something expensive not referencing a,b,d,e */ }
if (d) { /* do something expensive not referencing a,b,c,e */ }
if (e) { /* do something expensive not referencing a,b,c,d */ }
}
}

const func = makeFunc(true, false, false, false, false)
for ( let i=0; i < 100_000; i++) func()
Я надеюсь, что в примере V8 оптимизирует тестирование if (x) на закрытии, издавая только

Код: Выделить всё

/* do something expensive not referencing b,c,d,e */
после if (a) для выполнения 100 000 раз.


Подробнее здесь: https://stackoverflow.com/questions/795 ... ure-values

Вернуться в «Javascript»