whole_func_string: function(obj, arg) {
        var fn = arg;
        if(!isFunction(arg)) {
          fn = function() {
            if(arg) obj[arg]();
          }
        }
        fn.call(obj, obj);
        return obj;
      }
func_code_string: function(obj, arg) {
        var fn = arg;
        if(!isFunction(arg)) {
          fn = function() {
            if(arg) obj[arg]();
          }
        }
        fn.call(obj, obj);
        return obj;
      }
func_documentation_string: *
  @method tap(<obj>, <fn>)
  @returns Object
  @short Runs <fn> and returns <obj>.
  @extra  A string can also be used as a shortcut to a method. This method is used to run an intermediary function in the middle of method chaining. As a standalone method on the Object class it doesn't have too much use. The power of %tap% comes when using extended objects or modifying the Object prototype with Object.extend().
  @example
  
  Object.extend();
  [2,4,6].map(Math.exp).tap(function(arr) {
  arr.pop()
  });
  [2,4,6].map(Math.exp).tap('pop').map(Math.round); ->  [7,55]
  
  *