code: function normalize(hash, strategy, recursive) {
  		hash = as(Object, hash, {});
  		strategy = as(Function, strategy, dotDefault);
  		recursive = as(Boolean, recursive, true);
  		for (var key in hash) {
  			if (ownProperty(hash, key)) {
  				if (recursive && object(hash[key])) {
  					normalize(hash[key], strategy, recursive);
  				} else {
  					write(hash, key, deletePropertyAt(hash, key), strategy);
  				}
  			}
  		}
  		return hash;
  	}
docs: /* eslint-disable no-restricted-syntax