title: Object.assign removing existing property
body: <p>I might be misunderstanding how <code>Object.assign()</code> works, but I wasn't expecting it to remove an existing property, eg.:</p>
  
  <pre><code>var o1 = { "status":"", "app":{"version":"1.3.1.91","latest_version":"1.3.1.91"} }
  var o2 = { "status":"listening", "app":{"latest_version":"1.3.2.879"} }
  
  console.log(Object.assign({}, o1, o2));
  </code></pre>
  
  <p>Output: <code>{"status":"listening","app":{"latest_version":"1.3.2.879"}}</code></p>
  
  <p>What I expected it to be: <code>{"status":"listening", "app":{"version":"1.3.1.91", "latest_version":"1.3.2.879"}}</code></p>
  
  <p>I guess it's because it's a nested object? Is there any to make it update nested objects automatically (ie. without having to specify which ones) without any library?</p>
  
  <p>Thank you</p>