Инструменты разработчика Chrome размещают точку останова в неправильном месте

Я работаю над отладкой скрипта страницы, которую посещаю (я хочу изменить ее функциональность с помощью Tampermonkey), и пытаюсь установить точки останова в некотором коде. Этот код был минимизирован, поэтому я нажал кнопку «украсить», и теперь вместо этого я могу использовать его отформатированную версию для отладки.

Первую точку останова можно было установить в нужной строке, но следующая не зафиксировалась и вместо этого появлялась примерно на сотню строк ниже. Похоже, это ошибка, которая уже некоторое время преследует инструменты разработчика Chrome, и жалобы на нее продолжают появляться. Как я могу заставить его устанавливать точки останова там, где я хочу их установить?

ETA: Точка останова возвращается в нужное место, когда она ОТКЛЮЧЕНА, а затем возвращается в неправильное место, когда она снова включена.


person Melab    schedule 29.06.2016    source источник


Ответы (1)


Минификаторы применяют к вашему коду различные оптимизации, такие как объединение связанных операторов в одно выражение с использованием Оператор запятой. Если вы попытаетесь прерваться в середине этого выражения, отладчик вместо этого перейдет к следующему оператору. См. приведенный ниже пример из скрипта на этой странице.

Переход к точке останова

Существует некоторое обсуждение реализации точек останова подвыражения в V8 здесь, но пока это не реализовано.

person Gideon Pyzer    schedule 29.06.2016