Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit c98fee1

Browse files
author
Thomas Grainger
committed
log usable error on unhandled non error rejections Fixes #15816
1 parent 0c3620b commit c98fee1

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/ng/q.js

+11-6
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)