From aef3757c19a42ff2960e61c97213a9c3c97887f9 Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Sun, 5 Jun 2016 18:30:13 -0700 Subject: [PATCH 1/4] refactor($q): remove internal makePromise helper --- src/ng/q.js | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/ng/q.js b/src/ng/q.js index 8664c992a43c..7662f6de95bf 100644 --- a/src/ng/q.js +++ b/src/ng/q.js @@ -331,9 +331,9 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { 'finally': function(callback, progressBack) { return this.then(function(value) { - return handleCallback(value, true, callback); + return handleCallback(value, resolve, callback); }, function(error) { - return handleCallback(error, false, callback); + return handleCallback(error, reject, callback); }, progressBack); } }); @@ -532,31 +532,21 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { return result.promise; }; - var makePromise = function makePromise(value, resolved) { - var result = new Deferred(); - if (resolved) { - result.resolve(value); - } else { - result.reject(value); - } - return result.promise; - }; - - var handleCallback = function handleCallback(value, isResolved, callback) { + var handleCallback = function handleCallback(value, resolver, callback) { var callbackOutput = null; try { if (isFunction(callback)) callbackOutput = callback(); } catch (e) { - return makePromise(e, false); + return reject(e); } if (isPromiseLike(callbackOutput)) { return callbackOutput.then(function() { - return makePromise(value, isResolved); + return resolver(value); }, function(error) { - return makePromise(error, false); + return reject(error); }); } else { - return makePromise(value, isResolved); + return resolver(value); } }; From 744952e70b5e5342582dd772fafe5471fc9d3d10 Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Sun, 5 Jun 2016 18:45:24 -0700 Subject: [PATCH 2/4] refactor($q): remove unnecessary wrapper functions --- src/ng/q.js | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/ng/q.js b/src/ng/q.js index 7662f6de95bf..008d363cff93 100644 --- a/src/ng/q.js +++ b/src/ng/q.js @@ -372,7 +372,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { } finally { --queueSize; if (errorOnUnhandledRejections && queueSize === 0) { - nextTick(processChecksFn()); + nextTick(processChecks); } } } @@ -389,25 +389,17 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { } } - function processChecksFn() { - return function() { processChecks(); }; - } - - function processQueueFn(state) { - return function() { processQueue(state); }; - } - function scheduleProcessQueue(state) { if (errorOnUnhandledRejections && !state.pending && state.status === 2 && !state.pur) { if (queueSize === 0 && checkQueue.length === 0) { - nextTick(processChecksFn()); + nextTick(processChecks); } checkQueue.push(state); } if (state.processScheduled || !state.pending) return; state.processScheduled = true; ++queueSize; - nextTick(processQueueFn(state)); + nextTick(function() { processQueue(state); }); } function Deferred() { @@ -542,9 +534,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { if (isPromiseLike(callbackOutput)) { return callbackOutput.then(function() { return resolver(value); - }, function(error) { - return reject(error); - }); + }, reject); } else { return resolver(value); } From 771b7303dc19d2c62058c86daa7e3a6ce5409aa6 Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Sun, 5 Jun 2016 18:55:40 -0700 Subject: [PATCH 3/4] refactor($q): remove unnecessary check for promises resolving multiple times - by following the aplus promise spec we know this will never happen --- src/ng/q.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ng/q.js b/src/ng/q.js index 008d363cff93..baf29441fc90 100644 --- a/src/ng/q.js +++ b/src/ng/q.js @@ -604,11 +604,9 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { forEach(promises, function(promise, key) { counter++; when(promise).then(function(value) { - if (results.hasOwnProperty(key)) return; results[key] = value; if (!(--counter)) deferred.resolve(results); }, function(reason) { - if (results.hasOwnProperty(key)) return; deferred.reject(reason); }); }); From c18671aabddddf788dbef58ab9fd247c7f2bd4c7 Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Sun, 28 Aug 2016 20:45:53 -0700 Subject: [PATCH 4/4] refactor($q): switch func vars to func names --- src/ng/q.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/ng/q.js b/src/ng/q.js index baf29441fc90..7b9de29b0d52 100644 --- a/src/ng/q.js +++ b/src/ng/q.js @@ -298,14 +298,14 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { * * @returns {Deferred} Returns a new instance of deferred. */ - var defer = function() { + function defer() { var d = new Deferred(); //Necessary to support unbound execution :/ d.resolve = simpleBind(d, d.resolve); d.reject = simpleBind(d, d.reject); d.notify = simpleBind(d, d.notify); return d; - }; + } function Promise() { this.$$state = { status: 0 }; @@ -518,13 +518,13 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { * @param {*} reason Constant, message, exception or an object representing the rejection reason. * @returns {Promise} Returns a promise that was already resolved as rejected with the `reason`. */ - var reject = function(reason) { + function reject(reason) { var result = new Deferred(); result.reject(reason); return result.promise; - }; + } - var handleCallback = function handleCallback(value, resolver, callback) { + function handleCallback(value, resolver, callback) { var callbackOutput = null; try { if (isFunction(callback)) callbackOutput = callback(); @@ -538,7 +538,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { } else { return resolver(value); } - }; + } /** * @ngdoc method @@ -558,11 +558,11 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { */ - var when = function(value, callback, errback, progressBack) { + function when(value, callback, errback, progressBack) { var result = new Deferred(); result.resolve(value); return result.promise.then(callback, errback, progressBack); - }; + } /** * @ngdoc method @@ -642,7 +642,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { return deferred.promise; } - var $Q = function Q(resolver) { + function $Q(resolver) { if (!isFunction(resolver)) { throw $qMinErr('norslvr', 'Expected resolverFn, got \'{0}\'', resolver); } @@ -660,7 +660,7 @@ function qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) { resolver(resolveFn, rejectFn); return deferred.promise; - }; + } // Let's make the instanceof operator work for promises, so that // `new $q(fn) instanceof $q` would evaluate to true.