jsbench / jsbench.github.io

JavaScript benchmark playground
http://jsbench.github.io/
MIT License
266 stars 13 forks source link

Блокировка скрипта в проекте во время теста #13

Open nicksp opened 8 years ago

nicksp commented 8 years ago

Если в сниппете кода теста присутствует какое-либо действие в ответ на событие, например скролл окна, то в момент, когда тестируется данный сниппет и срабатывает данное событие (и, значит, исполняется js код), может быть выполнено тело обработчика данного события :)

Например:

window.onscroll = function(ev) {
    alert(8);
   document.getElementById('canvas').remove();
};

Это вредит правильной, стабильной логике работы программы и открывает потенциальные уязвимости ;)

@RubaXa В данном контексте можно что-либо предпринять?

RubaXa commented 8 years ago

Знаешь, я тут понял, что события нужно снимать перед запуском тестов, чтобы обработчики не влияли на их работу.

По поводу id согласен, надо сделать их автогенерируемыми, например:

var __jsbench__ = 'jsbench:' + Date.now() + ':' + Math.random();
document.write('<div id="' + __jsbench__ + ':html"></div><div id="' + __jsbench__ + ':canvas"></div>');
RubaXa commented 8 years ago

@nicksp А что с этой задачей?