Не могат да се задават същите точки на прекъсване във Firefox/Firebug като в Chrome

Отстранявам грешки в код на външен сайт (jshint.com). В Chrome мога успешно да задавам и улавям множество точки на прекъсване в кода. Въпреки това във Firefox/Firebug (9.0.1/1.8.4) едни и същи кодови редове, всъщност огромни парчета код, не могат да бъдат отстранени (а именно, номерата на редовете не са зелени). Някой виждал ли е нещо подобно и намерил ли е решение?


person claytoncarney    schedule 28.12.2011    source източник


Отговори (3)


Използвам FB 1.11.3b1 във FF 20.0.1 и забелязах този проблем. Дори след почистване на кода в JSLint. Това, което открих е, че FB наистина се обърква с ред, съдържащ единична къдрава скоба, последвана веднага от вграден коментар:

}
// some comment
// lines after this don't have green line numbers, breakpoints ignored
breakpointable_line = false;

За да заобиколите проблема, разделете ги с празен ред

}

// some comment
// lines after this now have green line numbers, all is well with the world
breakpointable_line = true;
person Peter Brand    schedule 14.05.2013
comment
Регистрирах проблем със сайта на FireBug и те ми отговориха, че ще заменят основния код за синтактичен анализ, който трябва да реши проблема(ите). Очаквайте следващото издание. - person Peter Brand; 15.07.2013

Виждам същия проблем на FF 14.0.1 с FB 1.10.0 (доста нови версии). Бях виждал това преди няколко години, мислех, че е докладван бъг и че е поправен, но го виждам отново. Проблемът е докладван като: http://code.google.com/p/fbug/issues/detail?id=4646

Съобщено заобиколно решение е да разделите вашия JS файл на по-малки файлове (не е решение за проблема на claytoncarney при отстраняване на грешки в JS файлове от други сайтове)

Проблемът изглежда възниква в края на функциите. Номерата на редовете, където задавате щракване, за да зададете точки на прекъсване, са зелени за места, където можете да задавате точки на прекъсване (т.е. не върху коментари или празни редове и т.н.). При някои функции обаче част от последните редове във функцията са сиви, а не номерата на редовете, нито зелените. Краят на номерата на зеления ред изглежда съответства на края на блок от код (затваряща къдрава скоба), който не е краят на функцията.

Разбира се, това се случва с големи JS файлове, така че е трудно да се създаде минимален пример, който възпроизвежда кода. (Виждам го на JS файлове, заредени от същия сървър като основната уеб страница, така че не е ограничен до външни сайтове, както Клейтънкарни изпита.)

person Ribo    schedule 28.07.2012

във Firefox проблемът е операторът catch:

грешно

catch {

}

точно

catch(e) {

}
person riiot_N    schedule 18.01.2019