aboutsummaryrefslogtreecommitdiff
path: root/node_modules/bluebird/js/release/async.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/bluebird/js/release/async.js')
-rw-r--r--node_modules/bluebird/js/release/async.js22
1 files changed, 13 insertions, 9 deletions
diff --git a/node_modules/bluebird/js/release/async.js b/node_modules/bluebird/js/release/async.js
index 41f665564..73cdc6110 100644
--- a/node_modules/bluebird/js/release/async.js
+++ b/node_modules/bluebird/js/release/async.js
@@ -126,24 +126,28 @@ if (!util.hasDevTools) {
};
}
-Async.prototype._drainQueue = function(queue) {
+function _drainQueue(queue) {
while (queue.length() > 0) {
- var fn = queue.shift();
- if (typeof fn !== "function") {
- fn._settlePromises();
- continue;
- }
+ _drainQueueStep(queue);
+ }
+}
+
+function _drainQueueStep(queue) {
+ var fn = queue.shift();
+ if (typeof fn !== "function") {
+ fn._settlePromises();
+ } else {
var receiver = queue.shift();
var arg = queue.shift();
fn.call(receiver, arg);
}
-};
+}
Async.prototype._drainQueues = function () {
- this._drainQueue(this._normalQueue);
+ _drainQueue(this._normalQueue);
this._reset();
this._haveDrainedQueues = true;
- this._drainQueue(this._lateQueue);
+ _drainQueue(this._lateQueue);
};
Async.prototype._queueTick = function () {