code: function(source) {
  		if (helpers.isArray(source)) {
  			return source.map(helpers.clone);
  		}
  
  		if (helpers.isObject(source)) {
  			var target = {};
  			var keys = Object.keys(source);
  			var klen = keys.length;
  			var k = 0;
  
  			for (; k < klen; ++k) {
  				target[keys[k]] = helpers.clone(source[keys[k]]);
  			}
  
  			return target;
  		}
  
  		return source;
  	}
docs: Returns a deep copy of `source` without keeping references on objects and arrays.
  @param {*} source - The value to clone.
  @returns {*}