Pale Moon v32.4.0 release note - https://www.palemoon.org/releasenotes.shtml - has the following interesting tidbit:<p>The BigInt primitive (base number format) in JavaScript allows JavaScript to handle excessively large integers (whole numbers). This primitive is especially useful for specialized scientific applications that need very large yet accurate numbers, but has seen widespread adoption for an as of yet unknown reason as part of web frameworks, causing general web compatibility issues for Pale Moon when scripts expect BigInt support and instead have an error thrown. We have now implemented this primitive for use so we no longer have compatibility issues with these frameworks. It is still unknown why BigInt is in use there and for what. Critical note: BigInt might be tempting to consider for JS-backed cryptography but this is very ill-advised, as BigInt operations are, by their nature, not constant-time and allow timing and side-channel attacks.<p>Does anybody have any idea why so many web frameworks are using BigInt?
I'm not sure what kind of web frameworks they have in mind, but "specialized scientific applications" is not the only reason for it -- BigInt is the only way to get standard 64-bit numbers (uint64/int64) in JavaScript without emulating them, since JS number type, aka 64-bit floating point, is limited to 53-bit integers. There are also Big[U]int64Array container types to load/store 64-bit arrays of integers from ArrayBuffer.