atom.js
function doNext() {
			if (q) {
				q.pending = q.next = (!q.next && q.length) ?
					q.shift() : q.next;
				q.args = slice.call(arguments, 0);
				if (q.pending) {
					q.next = 0;
					q.pending.apply({}, [preventMultiCall(doNext)].concat(q.args));
				}
			}
		}
function doNext() {
			if (q) {
				q.pending = q.next = (!q.next && q.length) ?
					q.shift() : q.next;
				q.args = slice.call(arguments, 0);
				if (q.pending) {
					q.next = 0;
					q.pending.apply({}, [preventMultiCall(doNext)].concat(q.args));
				}
			}
		}
function doNext ( ) { if ( q ) { q . pending = q . next = ( ! q . next && q . length ) ? q . shift ( ) : q . next ; q . args = slice . call ( arguments , 0 ) ; if ( q . pending ) { q . next = 0 ; q . pending . apply ( { } , [ preventMultiCall ( doNext ) ] . concat ( q . args ) ) ; } } }
Execute the next function in the async queue.
Execute the next function in the async queue .