Files
427e7578-d7bf-49c8-aee9-2dd…/yjs-poll/node_modules/isomorphic.js/browser.js

29 lines
709 B
JavaScript

/* eslint-env browser */
const perf = typeof performance === 'undefined' ? null : performance
const isoCrypto = typeof crypto === 'undefined' ? null : crypto
/**
* @type {function(number):ArrayBuffer}
*/
const cryptoRandomBuffer = isoCrypto !== null
? len => {
// browser
const buf = new ArrayBuffer(len)
const arr = new Uint8Array(buf)
isoCrypto.getRandomValues(arr)
return buf
}
: len => {
// polyfill
const buf = new ArrayBuffer(len)
const arr = new Uint8Array(buf)
for (let i = 0; i < len; i++) {
arr[i] = Math.ceil((Math.random() * 0xFFFFFFFF) >>> 0)
}
return buf
}
exports.performance = perf
exports.cryptoRandomBuffer = cryptoRandomBuffer