Сначала вы можете добавить вызов функции, такой как __checkDebug ();которая проверит глобальную (или полуглобальную) переменную, а когда указанная переменная имеет значение true, вызовите отладчик.
function __checkDebug() {
if (debugme) debugger;
}
все ваши функции, которые вас интересуют в отладке, будут выглядеть так:
function foo() {
__checkDebug();
//.... whatever foo was gonna do.
}
Затем вы можете продвинуться немного дальше и динамически декорировать функции во время выполнения кода следующим образом:
Function.prototype.debug = function(){
var fn = this;
return function(){
if (debugme) debugger;
return fn.apply(this, arguments);
};
};
foo = foo.debug();
теперь каждый раз, когда вызывается foo, он будет вызывать отладчик, если переменная debugmeэто правда.
Другой вариант - создать систему сборки javascript, которая вводит вызов после каждого объявления функции - для этого требуется синтаксический анализатор, но если вы хотите модифицировать функции, просто токенизатор для этого варианта использованиядовольно легко написать - но я оставлю это на ваше усмотрение.