code: function setZeroTimeout(callback) {
          var id = callbacks.length;
          callbacks.push(callback);
          window.postMessage(message + id.toString(36), '*');
  
          return id;
        }
docs: Like setTimeout, but only takes a function argument.  There's no time argument (always zero) and no arguments (you have to use a closure).