code: function bro() {
      var self = this;
  
      //
      // Time has passed since we've generated this function so we're going to
      // assume that this function is already executed async.
      //
      if (+(new Date()) > start) {
        return fn.apply(self, arguments);
      }
  
      for (var i = 0, l = arguments.length, args = new Array(l); i < l; i++) {
        args[i] = arguments[i];
      }
  
      (global.setImmediate || global.setTimeout)(function delay() {
        fn.apply(self, args);
        self = args = null;
      }, 0);
    }
docs: The wrapped function.
  
  @api private