aboutsummaryrefslogtreecommitdiffstats
path: root/src/deferred
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2015-11-23 13:57:10 -0500
committerDave Methvin <dave.methvin@gmail.com>2016-01-13 12:39:58 -0500
commit36a7cf9b1e1f96fe27710ab3f06043d01ad54d0e (patch)
tree6b6c741eaba457c55b1cf91176b8848f36673b44 /src/deferred
parentbdf1b8f317d793d8ebbbe7787955edabf201a685 (diff)
downloadjquery-36a7cf9b1e1f96fe27710ab3f06043d01ad54d0e.tar.gz
jquery-36a7cf9b1e1f96fe27710ab3f06043d01ad54d0e.zip
Deferred: Warn on exceptions that are likely programming errors
Fixes gh-2736 Closes gh-2737
Diffstat (limited to 'src/deferred')
-rw-r--r--src/deferred/exceptionHook.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/deferred/exceptionHook.js b/src/deferred/exceptionHook.js
new file mode 100644
index 000000000..b9955063a
--- /dev/null
+++ b/src/deferred/exceptionHook.js
@@ -0,0 +1,19 @@
+define( [
+ "../core",
+ "../deferred"
+], function( jQuery ) {
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+ // Support: IE9
+ // Console exists when dev tools are open, which can happen at any time
+ if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+ window.console.warn( "jQuery.Deferred exception: " + error.message, stack );
+ }
+};
+
+} );