src/conrad.js
function __clone(item) {
    var result, i, k, l;

    if (!item)
      return item;

    if (Array.isArray(item)) {
      result = [];
      for (i = 0, l = item.length; i < l; i++)
        result.push(__clone(item[i]));
    } else if (typeof item === 'object') {
      result = {};
      for (i in item)
        result[i] = __clone(item[i]);
    } else
      result = item;

    return result;
  }
function __clone(item) {
    var result, i, k, l;

    if (!item)
      return item;

    if (Array.isArray(item)) {
      result = [];
      for (i = 0, l = item.length; i < l; i++)
        result.push(__clone(item[i]));
    } else if (typeof item === 'object') {
      result = {};
      for (i in item)
        result[i] = __clone(item[i]);
    } else
      result = item;

    return result;
  }
function __clone ( item ) { var result , i , k , l ; if ( ! item ) return item ; if ( Array . isArray ( item ) ) { result = [ ] ; for ( i = 0 , l = item . length ; i < l ; i ++ ) result . push ( __clone ( item [ i ] ) ) ; } else if ( typeof item === 'object' ) { result = { } ; for ( i in item ) result [ i ] = __clone ( item [ i ] ) ; } else result = item ; return result ; }
This function simply clones an object. This object must contain only
objects, arrays and immutable values. Since it is not public, it does not
deal with cyclic references, DOM elements and instantiated objects - so
use it carefully.

@param  {Object} The object to clone.
@return {Object} The clone.
This function simply clones an object . This object must contain only objects arrays and immutable values . Since it is not public it does not deal with cyclic references DOM elements and instantiated objects - so use it carefully .