These restrictions are all real for iOS : https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP40006482-SW15
For devices with less than 256 MB of RAM, the maximum size for decoded GIF, PNG, and TIFF images is 3 megapixels; for devices with more or equal to 256 MB of RAM, the maximum size is 5 megapixels.
Canvas elements have a maximum size of 3 megapixels for devices with less than 256 MB of RAM and 5 megapixels for devices with 256 MB or more RAM. Each top-level entry point's JavaScript execution time is restricted to 10 seconds.
If you try to render or read a 6MB image, you will receive a malformed blob/dataURL string, and so on, because these limits don't throw any problems. And you'll be correct when you believe that the File API and the canvas methods toDataURL and toBlob are faulty. However, this is a system limitation and not a browser problem.
As a result, the JavaScript API displays incorrect functionality.
More information for this can be found on https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL