title: Confused by behavior of `map` on arrays created using `new`
body: <p>I am confused by the results of <code>map</code>ping over an array created with <code>new</code>:</p>
  
  <pre><code>function returnsFourteen() {
      return 14;
  }
  
  var a = new Array(4);
  &gt; [undefined x 4] in Chrome, [, , , ,] in Firefox
  a.map(returnsFourteen);
  &gt; [undefined x 4] in Chrome, [, , , ,] in Firefox
  
  var b = [undefined, undefined, undefined, undefined];
  &gt; [undefined, undefined, undefined, undefined]
  b.map(returnsFourteen);
  &gt; [14, 14, 14, 14]
  </code></pre>
  
  <p>I expected <code>a.map(returnsFourteen)</code> to return <code>[14, 14, 14, 14]</code> (the same as <code>b.map(returnsFourteen)</code>, because according to the <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array" rel="noreferrer">MDN page on arrays</a>:</p>
  
  <blockquote>
    <p>If the only argument passed to the Array constructor is an integer
    between 0 and 2**32-1 (inclusive), a new JavaScript array is created
    with that number of elements.</p>
  </blockquote>
  
  <p>I interpret that to mean that <code>a</code> should have 4 elements.  </p>
  
  <p>What am I missing here?</p>