title: Why does Object.assign() require a polyfill when babel-loader is being used?
body: <p>I'm attempting to use <code>Object.assign()</code> in an ES6 web app compiled by Babel with webpack, but I'm getting an error:</p>
  
  <pre><code>Uncaught TypeError: Object.assign is not a function
  </code></pre>
  
  <p>I'm already using <a href="https://github.com/babel/babel-loader" rel="noreferrer"><code>babel-loader</code></a> to transpile ES6 to ES5, so all my other ES6 code is working. Yet, <code>Object.assign()</code> only works after I also <code>import "babel-core/polyfill"</code> in my codebase. I see that I can also fix this <a href="https://stackoverflow.com/questions/32123050/use-babel-loader-but-object-assign-is-not-a-function">by importing babel-runtime</a>, but I'd like to understand <em>why</em> <code>Object.assign()</code> requires more than what <code>babel-loader</code> performs — shouldn't <code>babel-loader</code> preprocess everything, including <code>Object.assign()</code>?</p>