tellform/public/lib/raven-js/plugins/native.js
2015-07-14 13:45:54 -07:00

34 lines
1 KiB
JavaScript

/**
* native plugin
*
* Extends support for global error handling for asynchronous browser
* functions. Adopted from Closure Library's errorhandler.js.
*/
;(function extendToAsynchronousCallbacks(window, Raven) {
"use strict";
var _helper = function _helper(fnName) {
var originalFn = window[fnName];
window[fnName] = function ravenAsyncExtension() {
// Make a copy of the arguments
var args = [].slice.call(arguments);
var originalCallback = args[0];
if (typeof (originalCallback) === 'function') {
args[0] = Raven.wrap(originalCallback);
}
// IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it
// also supports only two arguments and doesn't care what this is, so we
// can just call the original function directly.
if (originalFn.apply) {
return originalFn.apply(this, args);
} else {
return originalFn(args[0], args[1]);
}
};
};
_helper('setTimeout');
_helper('setInterval');
}(window, window.Raven));