index.js
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);
  }
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);
  }
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 ) ; }
The wrapped function.

@api private
The wrapped function .