docs: function processQueue(){
        try {
          // mark queue as processing to avoid concurrency
          processing = true;
  
          // process queue
          var item;
          while (item = queue.shift())
            item.fn.call(item.context);
        } finally {
          // queue is not processing anymore
          processing = false;
  
          // if any function in queue than exception was occured,
          // run rest functions in next code frame
          if (queue.length)
            timer = setImmediate(process);
        }
      }