Полез тут в код Авито через консоль Chrome, и с удивлением обнаружил вот такой код, запускающий что-то вроде бесконечного режима отладки, т. е. реализована защита HTML/JavaScript кода от изучения:
(function(x){
(function(f){
(function a(){
try {
function b(i)
{
if ((''+(i/i)).length !== 1 || i % 20 === 0) {
(function(){}).constructor('debugger')();
} else {
debugger;
}
b(++i);
}
b(0);
} catch(e) {
f.setTimeout(a, x)
}
})()
})(document.body.appendChild(document.createElement('frame')).contentWindow);
})
Объясните, пожалуйста, как работает эта "магия" и как её можно обойти?
Статей с описанием этого способа найти не удалось, буду рад, если подкинете.