code: function(buffer, callback) {
      if (supportsWorkers) {
          // We have a worker queue, push an item into it and start processing
          workerQueue.push({ buffer: buffer, callback: callback });
          nextMd5Task();
      } else {
          // We don't have any Web Worker support,
          // queue an MD5 operation on the next tick
          process.nextTick(function() {
              callback(null, md5.ArrayBuffer.hash(buffer));
          });
      }
  }
docs: Add a new MD5 task to the queue
  
  @param {ArrayBuffer} buffer - Buffer containing the file data
  @param {Function} callback  - Callback to run when the MD5 task has been completed