docs: function(message) {
  
          /* Sanity check */
          if (! worker) throw new Error("Worker " + workerId + " unavailable");
  
          /* Create and remember our deferred */
          var deferred = new Deferred();
  
          /* Encode and remember this message */
          var omsg = message;
          var xid = message.id = lastMessageId ++;
          message = messages.encode(message);
  
          if (message.id == null) {
            console.warn("PROXIES", messages.reverseProxies);
            throw new Error("GONZO: " + xid + " ->\n" + JSON.stringify(omsg, null, 2) + "\n ->\n" + JSON.stringify(message, null , 2));
          }
  
          pendingMessages[message.id] = deferred;
  
  
          /* If debugging, debug! */
          if (debug) {
            console.log("Sending to Worker[" + workerId + "]\n" + JSON.stringify(message, null, 2));
          }
  
          /* Post the message */
          worker.postMessage(message);
  
          /* Return our promise */
          return deferred.promise;
        }