title: Javascript Date accepts non-numeric year "aaaa-05-04" as a valid date
body: <p>How come Javascript Date accepts non-numeric character as year and returns it as 2001?</p>
  <p>If you run the following:</p>
  <pre><code>new Date('aaaa-05-04');
  </code></pre>
  <p>it results in <code>Fri May 04 2001 00:00:00 GMT+0200</code>. Shouldn't year <code>aaaa</code> result in <code>Invalid Date</code>? You get the same result by setting the year as <code>b</code>,  <code>abc</code> or any other combination.</p>
  <p>Also setting the month to non-numeric gives a valid date</p>
  <pre><code>new Date('aaaa-aa-01');
  </code></pre>
  <p>But not if day is set to 21:</p>
  <pre><code>new Date('aaaa-aa-21');
  </code></pre>
  <p>Bonus question:</p>
  <pre><code>new Date(1950, 30, 30);
  </code></pre>
  <p>results in <code>Wed Jul 30 1952 00:00:00 GMT+0100</code></p>
  <p>Shouldn't this also result in <code>Invalid Date</code>? Instead it adds to the year.</p>
  <p>I'm currently using Chrome 91.</p>