Skip to content

Instantly share code, notes, and snippets.

@tlrobinson
Created October 18, 2008 10:38
Show Gist options
  • Save tlrobinson/17651 to your computer and use it in GitHub Desktop.
Save tlrobinson/17651 to your computer and use it in GitHub Desktop.
function callbackWrap(object, property, callbackArgNum, wrapperMaker) {
var original = object[property];
object[property] = function() {
arguments[callbackArgNum] = wrapperMaker(arguments[callbackArgNum]);
return original.apply(this, arguments);
}
}
function reportExceptionsWrapperMaker(wrappedFunction) {
return function() {
console.log("start");
wrappedFunction.apply(this, arguments);
console.log("end");
}
}
callbackWrap(window, "setTimeout", 0, reportExceptionsWrapperMaker);
callbackWrap(window, "setInterval", 0, reportExceptionsWrapperMaker);
callbackWrap(window, "addEventListener", 1, reportExceptionsWrapperMaker);
callbackWrap(Element.prototype, "addEventListener", 1, reportExceptionsWrapperMaker);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment