title: Object.assign not working as expected
body: <p>I have one object called bookings, and inside it I have several properties, and i want extend with Object.assign, like this:</p>
  
  <pre><code>let data = Object.assign(booking, {
    hiw: event.hiw[booking.locale],
    tip: event.tip[booking.locale],
    start: moment(event.start).format('L')
  });
  </code></pre>
  
  <p>But when I print the data, the result will be the same object from the source (booking), so <code>hiw</code>, <code>tip</code> and <code>start</code> will be ignored, but... if I try to do:</p>
  
  <pre><code>let data = Object.assign({}, {
    hiw: event.hiw[booking.locale],
    tip: event.tip[booking.locale],
    start: moment(event.start).format('L')
  });
  </code></pre>
  
  <p>This will work perfect.</p>
  
  <p>My question is: what am I doing wrong here? Why can't I extend <code>booking</code> and I can extend the empty object?</p>
  
  <p>That's definitely not a problem with async code, when i try to extend booking, he already exist with all properties inside.</p>
  
  <p>I also was trying to use underscore <code>extend</code> method, and the behavior is exactly the same.</p>