Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
например, отслеживать каждый объект в этом коде на предмет переопределения у его прототипа методов valueOf и toStringА так же у прототипа его прототипа и так далее до объекта Object. Плюс надо будет также проверять геттеры-сеттеры и бог знает сколько всего ещё.
function func(a, b) {
var x;
var i = 300;
while (i--) {
x = a + b; // dead store
}
return x
}
x = func(1, { valueOf: function() { alert("Hi Dean!"); return 2; } });
, то гугл сожмет доfor(var a = {valueOf:function() {
alert("Hi Dean!");
return 2
}}, b, c = 300;c--;) {
b = 1 + a
}
x = b;
Что в принципе, правильно.Выбранное для оптимизации множество операций, похоже, совпадает с тем, которое используется в математических тестах в SunSpider.
Compiler optimization is a tricky thing, and compiler authors tend to be very conservative about which optimizations they apply.
Удаление мёртвого кода для начинающих