code: 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));
  				}
  			}
  		}
docs: Execute the next function in the async queue.