title: console.log() called on object other than console
body: <p>I remember that always when I wanted to pass <code>console.log</code> as a callback parameter to some function, it didn't work unless I used the <code>bind()</code> method to bind <code>console</code> to it.</p>
  
  <p>For example:</p>
  
  <pre><code>const callWithTest = callback =&gt; callback('test');
  callWithTest(console.log); // That didn't use to work.
  callWithTest(console.log.bind(console)); // That worked (and works) fine.
  </code></pre>
  
  <p>See <a href="https://stackoverflow.com/q/8904782/3853934">Uncaught TypeError: Illegal invocation in javascript</a>.</p>
  
  <p>However, recently I noticed that <code>console.log()</code> works fine even when called on object other than console. For example:</p>
  
  <pre><code>console.log.call(null, 'test');
  </code></pre>
  
  <p>logs <code>'test'</code>.</p>
  
  <p>When and why did it change? Does the specification say anything about it?</p>