| 12345678910111213141516171819202122232425262728293031323334 | function override(source1, source2) {  var target = {};  var key1;  var key2;  var item;  for (key1 in source1) {    item = source1[key1];    if (Array.isArray(item)) {      target[key1] = item.slice(0);    } else if (typeof item == 'object' && item !== null) {      target[key1] = override(item, {});    } else {      target[key1] = item;    }  }  for (key2 in source2) {    item = source2[key2];    if (key2 in target && Array.isArray(item)) {      target[key2] = item.slice(0);    } else if (key2 in target && typeof item == 'object' && item !== null) {      target[key2] = override(target[key2], item);    } else {      target[key2] = item;    }  }  return target;}module.exports = override;
 |