title: Why are certain function calls termed "illegal invocations" in JavaScript?
body: <p>For example, if I do this:</p>
  
  <pre><code>var q = document.querySelectorAll;
  
  q('body');
  </code></pre>
  
  <p>I get an "Illegal invocation" error in Chrome.  I can't think of any reason why this is necessary.  For one, it's not the case with all native code functions.  In fact I can do this:</p>
  
  <pre><code>var o = Object; // which is a native code function
  
  var x = new o();
  </code></pre>
  
  <p>And everything works just fine.  In particular I've discovered this problem when dealing with document and console.  Any thoughts?</p>