dot-argv.js
function overwrite(obj, defaults) {
  var res = {};
  var dFlat = collapse(defaults);
  var oFlat = collapse(obj);
  for (var key in dFlat) {
    val(res, key, dFlat[key]);
  }
  for (var key in oFlat) {
    val(res, key, oFlat[key]);
  }
  return res;
}
function overwrite(obj, defaults) {
  var res = {};
  var dFlat = collapse(defaults);
  var oFlat = collapse(obj);
  for (var key in dFlat) {
    val(res, key, dFlat[key]);
  }
  for (var key in oFlat) {
    val(res, key, oFlat[key]);
  }
  return res;
}
function overwrite ( obj , defaults ) { var res = { } ; var dFlat = collapse ( defaults ) ; var oFlat = collapse ( obj ) ; for ( var key in dFlat ) { val ( res , key , dFlat [ key ] ) ; } for ( var key in oFlat ) { val ( res , key , oFlat [ key ] ) ; } return res ; }
Returns a new object with 'defaults' overwritten by entries in 'obj'
Returns a new object with defaults overwritten by entries in obj