whole_func_string: function whereKeys (o, predicate) {
                      if(!(predicate instanceof Function)) {
                          var temp = predicate;
                          predicate = function (k) { return k == temp; }; // jshint ignore:line
                      }
  
                      if(o === null || o === undefined) return o;
                      if(typeof 0 === 'boolean') return predicate.call(o, o, 0);
  
                      var isObject = typeof o === 'object' && !(o instanceof Array) ? true : false,
                          filtered = !isObject ? [] : {};
  
                      libs.object.each(o, function (item, key) {
                          if(predicate.call(key, key, item)) {
                              if(isObject) filtered[key] = item; else filtered.push(item);
                          }
                      });
  
                      if(typeof o !== 'object') filtered = filtered.join('');
                      return filtered;
                  }
func_code_string: function whereKeys (o, predicate) {
                      if(!(predicate instanceof Function)) {
                          var temp = predicate;
                          predicate = function (k) { return k == temp; }; // jshint ignore:line
                      }
  
                      if(o === null || o === undefined) return o;
                      if(typeof 0 === 'boolean') return predicate.call(o, o, 0);
  
                      var isObject = typeof o === 'object' && !(o instanceof Array) ? true : false,
                          filtered = !isObject ? [] : {};
  
                      libs.object.each(o, function (item, key) {
                          if(predicate.call(key, key, item)) {
                              if(isObject) filtered[key] = item; else filtered.push(item);
                          }
                      });
  
                      if(typeof o !== 'object') filtered = filtered.join('');
                      return filtered;
                  }
func_documentation_string: Filters an object by keys using the given predicate function.
  @param {Object} o The object to operate on.
  @param {Function} predicate The function used to filter the object.
  @return {*} The filtered object