/**
 * Process queue with async capability
 *
 * @param {Array} queue - Items to be processed (usually functions)
 * @param {Function} iterator - Process each item in queue
 * @param {Function} callback - Exit runQueue and initiate rest of sequence that called runQueue
 */
export default function runQueue(queue, iterator, callback) {
	const queueCount = queue.length;
	const step = function step(index) {
		if (index >= queueCount) {
			callback();
		} else {
			if (queue[index]) {
				iterator(queue[index], () => {
					step(index + 1);
				});
			} else {
				step(index + 1);
			}
		}
	}

	// Initiate recursive function call
	step(0);
}
@@ -509,16 +509,82 @@
 x%5D, 
-() =%3E
+next =%3E %7B%0A%09%09%09%09%09if (next === false) %7B%0A%09%09%09%09%09%09callback(true);%0A%09%09%09%09%09%7D else
  %7B%0A
+%09
 %09%09%09%09
@@ -601,16 +601,23 @@
 x + 1);%0A
+%09%09%09%09%09%7D%0A
 %09%09%09%09%7D);%0A

Kill queue runner conditionally