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

Commit

Permalink
log usable error on unhandled non error rejections Fixes #15816
Browse files Browse the repository at this point in the history
  • Loading branch information
graingert committed Mar 15, 2017
1 parent c80fa1c commit dca6b76
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions src/ng/q.js
Expand Up @@ -360,7 +360,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
} else if (state.status === 1) {
resolvePromise(promise, state.value);
} else {
rejectPromise(promise, state.value);
rejectPromise(promise, state.value, state.error);
}
} catch (e) {
rejectPromise(promise, e);
Expand All @@ -384,7 +384,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
if (toCheck.value instanceof Error) {
exceptionHandler(toCheck.value, errorMessage);
} else {
exceptionHandler(errorMessage);
exceptionHandler(toCheck.error, errorMessage);
}
}
}
Expand Down Expand Up @@ -448,15 +448,20 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {
}
}

function rejectPromise(promise, reason) {
function rejectPromise(promise, reason, e) {
if (promise.$$state.status) return;
$$reject(promise, reason);
$$reject(promise, reason, e);
}

function $$reject(promise, reason) {
function $$reject(promise, reason, e) {
promise.$$state.value = reason;
promise.$$state.status = 2;
scheduleProcessQueue(promise.$$state);
if (e && e.reason === reason) {
promise.$$state.error = e;
} else {
promise.$$state.error = new Error(reason);
promise.$$state.error.reason = reason;
}
}

function notifyPromise(promise, progress) {
Expand Down

0 comments on commit dca6b76

Please sign in to comment.