diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/deferred.js | 8 | ||||
-rw-r--r-- | src/deferred/exceptionHook.js | 7 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/deferred.js b/src/deferred.js index dc4294726..0d77ac9d6 100644 --- a/src/deferred.js +++ b/src/deferred.js @@ -188,7 +188,7 @@ jQuery.extend( { if ( jQuery.Deferred.exceptionHook ) { jQuery.Deferred.exceptionHook( e, - process.stackTrace ); + process.error ); } // Support: Promises/A+ section 2.3.3.3.4.1 @@ -216,10 +216,10 @@ jQuery.extend( { process(); } else { - // Call an optional hook to record the stack, in case of exception + // Call an optional hook to record the error, in case of exception // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); + if ( jQuery.Deferred.getErrorHook ) { + process.error = jQuery.Deferred.getErrorHook(); } window.setTimeout( process ); } diff --git a/src/deferred/exceptionHook.js b/src/deferred/exceptionHook.js index 0315b2ecb..a5e7b5d3c 100644 --- a/src/deferred/exceptionHook.js +++ b/src/deferred/exceptionHook.js @@ -6,13 +6,16 @@ import "../deferred.js"; // 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 ) { +// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error +// captured before the async barrier to get the original error cause +// which may otherwise be hidden. +jQuery.Deferred.exceptionHook = function( error, asyncError ) { if ( error && rerrorNames.test( error.name ) ) { window.console.warn( "jQuery.Deferred exception", error, - stack + asyncError ); } }; |