@@ -360,7 +360,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
360
360
} else if ( state . status === 1 ) {
361
361
resolvePromise ( promise , state . value ) ;
362
362
} else {
363
- rejectPromise ( promise , state . value ) ;
363
+ rejectPromise ( promise , state . value , state . error ) ;
364
364
}
365
365
} catch ( e ) {
366
366
rejectPromise ( promise , e ) ;
@@ -384,7 +384,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
384
384
if ( toCheck . value instanceof Error ) {
385
385
exceptionHandler ( toCheck . value , errorMessage ) ;
386
386
} else {
387
- exceptionHandler ( errorMessage ) ;
387
+ exceptionHandler ( toCheck . error , errorMessage ) ;
388
388
}
389
389
}
390
390
}
@@ -448,15 +448,20 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
448
448
}
449
449
}
450
450
451
- function rejectPromise ( promise , reason ) {
451
+ function rejectPromise ( promise , reason , e ) {
452
452
if ( promise . $$state . status ) return ;
453
- $$reject ( promise , reason ) ;
453
+ $$reject ( promise , reason , e ) ;
454
454
}
455
455
456
- function $$reject ( promise , reason ) {
456
+ function $$reject ( promise , reason , e ) {
457
457
promise . $$state . value = reason ;
458
458
promise . $$state . status = 2 ;
459
- scheduleProcessQueue ( promise . $$state ) ;
459
+ if ( e && e . reason === reason ) {
460
+ promise . $$state . error = e ;
461
+ } else {
462
+ promise . $$state . error = new Error ( reason ) ;
463
+ promise . $$state . error . reason = reason ;
464
+ }
460
465
}
461
466
462
467
function notifyPromise ( promise , progress ) {
0 commit comments