docs: function(target, source, options) {
  		var sources = helpers.isArray(source) ? source : [source];
  		var ilen = sources.length;
  		var merge, i, keys, klen, k;
  
  		if (!helpers.isObject(target)) {
  			return target;
  		}
  
  		options = options || {};
  		merge = options.merger || helpers._merger;
  
  		for (i = 0; i < ilen; ++i) {
  			source = sources[i];
  			if (!helpers.isObject(source)) {
  				continue;
  			}
  
  			keys = Object.keys(source);
  			for (k = 0, klen = keys.length; k < klen; ++k) {
  				merge(keys[k], target, source, options);
  			}
  		}
  
  		return target;
  	}