From 1c88bc0e5603ed235f5effd75f86b68daf7bb3c2 Mon Sep 17 00:00:00 2001 From: jamestalmage Date: Thu, 22 Aug 2013 00:01:10 -0400 Subject: [PATCH] fix(q.js): if rejection handler throws an exception, promise should be rejected per Promise/A+ spec --- src/ng/q.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ng/q.js b/src/ng/q.js index cc39967c50eb..f6133d4dbd49 100644 --- a/src/ng/q.js +++ b/src/ng/q.js @@ -375,7 +375,12 @@ function qFactory(nextTick, exceptionHandler) { then: function(callback, errback) { var result = defer(); nextTick(function() { - result.resolve((isFunction(errback) ? errback : defaultErrback)(reason)); + try { + result.resolve((isFunction(errback) ? errback : defaultErrback)(reason)); + } catch (e) { + result.reject(e); + exceptionHandler(e); + } }); return result.promise; }