lib/index.js
function deepCopy(obj) {
	var res;
	var i;
	var key;
	if (isTerminal(obj)) {
		res = obj;
	} else if (Array.isArray(obj)) {
		res = Array(obj.length);
		for (i = 0; i < obj.length; i++) {
			res[i] = deepCopy(obj[i]);
		}
	} else {
		res = {};
		for (key in obj) {
			res[key] = deepCopy(obj[key]);
		}
	}
	return res;
}
function deepCopy(obj) {
	var res;
	var i;
	var key;
	if (isTerminal(obj)) {
		res = obj;
	} else if (Array.isArray(obj)) {
		res = Array(obj.length);
		for (i = 0; i < obj.length; i++) {
			res[i] = deepCopy(obj[i]);
		}
	} else {
		res = {};
		for (key in obj) {
			res[key] = deepCopy(obj[key]);
		}
	}
	return res;
}
function deepCopy ( obj ) { var res ; var i ; var key ; if ( isTerminal ( obj ) ) { res = obj ; } else if ( Array . isArray ( obj ) ) { res = Array ( obj . length ) ; for ( i = 0 ; i < obj . length ; i ++ ) { res [ i ] = deepCopy ( obj [ i ] ) ; } } else { res = { } ; for ( key in obj ) { res [ key ] = deepCopy ( obj [ key ] ) ; } } return res ; }
Returns a deep copy of the given value such that entities are not passed
by reference.

@method deepCopy
@static
@param {Mixed} obj - The object or value to copy
@return {Mixed}
Returns a deep copy of the given value such that entities are not passed by reference .