whole_func_string: function(obj, deep) {
        var target;
        // Preserve internal UTC flag when applicable.
        if(isDate(obj) && obj.clone) {
          return obj.clone();
        } else if(!isObjectPrimitive(obj)) {
          return obj;
        } else if (obj instanceof Hash) {
          target = new Hash;
        } else {
          target = new obj.constructor;
        }
        return object.merge(target, obj, deep);
      }
func_code_string: function(obj, deep) {
        var target;
        // Preserve internal UTC flag when applicable.
        if(isDate(obj) && obj.clone) {
          return obj.clone();
        } else if(!isObjectPrimitive(obj)) {
          return obj;
        } else if (obj instanceof Hash) {
          target = new Hash;
        } else {
          target = new obj.constructor;
        }
        return object.merge(target, obj, deep);
      }
func_documentation_string: *
  @method clone(<obj> = {}, [deep] = false)
  @returns Cloned object
  @short Creates a clone (copy) of <obj>.
  @extra Default is a shallow clone, unless [deep] is true. %clone% is available as an instance method on extended objects.
  @example
  
  Object.clone({foo:'bar'})            -> { foo: 'bar' }
  Object.clone()                       -> {}
  Object.extended({foo:'bar'}).clone() -> { foo: 'bar' }
  
  *