title: Overwriting the Array constructor does not affect [], right?
body: <p>I just read this: <strong><a href="http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx" rel="noreferrer">http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx</a></strong></p>
  
  <p>I was under the impression that overwriting <strong><code>Object</code></strong> or <strong><code>Array</code></strong> only had an effect if you chose to use the constructor functions when creating <strong><code>arrays</code></strong>/<strong><code>objects</code></strong>, but, according to that article, it also has an effect on literal creation (<strong><code>{}</code></strong> and <strong><code>[]</code></strong>)...</p>
  
  <p>My logic:</p>
  
  <pre><code>Array = function(){ alert('Hi'); };
  
  [1,2,3,4,5];
  ([1,2,3,4,5]);
  var a = [1,2,3,4,5];
  
  // ...
  // ... Nothing is alerted
  </code></pre>
  
  <p>So, am I going crazy or are there some implementation-specific quirks I'm not aware of?</p>