title: Uint8Array invalid typed array length for larger array buffer
body: <p>I'm reading a file as an array buffer via:</p>
  
  <pre><code>reader.readAsArrayBuffer(myFile);
  </code></pre>
  
  <p>I'm then taking that array buffer and trying to create a Uint8Array via:</p>
  
  <pre><code>reader.onload = e =&gt; {
    let arrayBuffer = new Uint8Array(e.target.result, 0, 
    e.target.result.byteLength);
  </code></pre>
  
  <p>I've also tried just:</p>
  
  <pre><code>let arrayBuffer = new Uint8Array(e.target.result);
  </code></pre>
  
  <p>In both cases when I upload a file with a byte length of 198873088 it works fine. However when I try a larger file of 1564725248 i get the following in the first case:</p>
  
  <pre><code>Invalid typed array length: 1564725248
  </code></pre>
  
  <p>and this in the second case:</p>
  
  <pre><code>Invalid typed array length: undefined
  </code></pre>
  
  <p>I thought the cap was 2^32 - 1 which would be 42949672995, can anyone explain why there's a problem with the length?</p>