@@ -360,7 +360,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
360360 } else if ( state . status === 1 ) {
361361 resolvePromise ( promise , state . value ) ;
362362 } else {
363- rejectPromise ( promise , state . value ) ;
363+ rejectPromise ( promise , state . value , state . error ) ;
364364 }
365365 } catch ( e ) {
366366 rejectPromise ( promise , e ) ;
@@ -384,7 +384,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
384384 if ( toCheck . value instanceof Error ) {
385385 exceptionHandler ( toCheck . value , errorMessage ) ;
386386 } else {
387- exceptionHandler ( errorMessage ) ;
387+ exceptionHandler ( toCheck . error , errorMessage ) ;
388388 }
389389 }
390390 }
@@ -448,15 +448,20 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
448448 }
449449 }
450450
451- function rejectPromise ( promise , reason ) {
451+ function rejectPromise ( promise , reason , e ) {
452452 if ( promise . $$state . status ) return ;
453- $$reject ( promise , reason ) ;
453+ $$reject ( promise , reason , e ) ;
454454 }
455455
456- function $$reject ( promise , reason ) {
456+ function $$reject ( promise , reason , e ) {
457457 promise . $$state . value = reason ;
458458 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+ }
460465 }
461466
462467 function notifyPromise ( promise , progress ) {
0 commit comments