numbers.js 473 B

12345678910111213141516171819202122232425
  1. "use strict";
  2. var MAX_UINT32 = Math.pow(2, 32);
  3. var getUint64 = function getUint64(uint8) {
  4. var dv = new DataView(uint8.buffer, uint8.byteOffset, uint8.byteLength);
  5. var value;
  6. if (dv.getBigUint64) {
  7. value = dv.getBigUint64(0);
  8. if (value < Number.MAX_SAFE_INTEGER) {
  9. return Number(value);
  10. }
  11. return value;
  12. }
  13. return dv.getUint32(0) * MAX_UINT32 + dv.getUint32(4);
  14. };
  15. module.exports = {
  16. getUint64: getUint64,
  17. MAX_UINT32: MAX_UINT32
  18. };