Is it possible, in any browser, using any plugin, to enable or disable breakpoints in your code programmatically?
I already know about setting conditional breakpoints, but I'm really interested in setting them via code.
First you could add a call to a function like __checkDebug(); which will check for a global (or semi-global) variable and when said variable is true, call debugger.
function __checkDebug() {
if (debugme) debugger;
}
all of your functions you're concerned about debugging would be like so:
function foo() {
__checkDebug();
//.... whatever foo was gonna do.
}
You can then take it a little further and dynamically decorate functions while the code is being executed like so:
Function.prototype.debug = function(){
var fn = this;
return function(){
if (debugme) debugger;
return fn.apply(this, arguments);
};
};
foo = foo.debug();
now any time foo is called it will call debugger if the debugme variable is truthy.
Another option would be to build a javascript build system that injects the call after every function declaration - this requires a syntax parser but if you're only looking to modify functions a simple tokenizer for that use case is pretty easy to write - but I'll leave that up to you.