code: function () {
      // Collect the arguments for passing
      var args = [].slice.call(arguments);
  
      // Run the items in order and capture the return value
      before.apply(this, args);
      var retVal = fn.apply(this, args);
      after.apply(this, args);
  
      // Return the return value;
      return retVal;
    }
docs: Wrap fn