function interceptFunction (object, fnName, options) { var noop = function () {}; var fnToWrap = object[fnName]; var before = options.before || noop; var after = options.after || noop; object[fnName] = function () { before.apply(this, arguments); var result = fnToWrap.apply(this, arguments); after.apply(this, arguments); return result } }