2017-06-08_509bba0/509bba0_unpacked_with_node_modules/~/uuid/rng-browser.js
2022-07-26 10:06:20 -07:00

39 lines
No EOL
789 B
JavaScript
Executable file

var rng;
if (global.crypto && crypto.getRandomValues) {
// WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
// Moderately fast, high quality
var _rnds8 = new Uint8Array(16);
rng = function whatwgRNG() {
crypto.getRandomValues(_rnds8);
return _rnds8;
};
}
if (!rng) {
// Math.random()-based (RNG)
//
// If all else fails, use Math.random(). It's fast, but is of unspecified
// quality.
var _rnds = new Array(16);
rng = function() {
for (var i = 0, r; i < 16; i++) {
if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
_rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
}
return _rnds;
};
}
module.exports = rng;
//////////////////
// WEBPACK FOOTER
// ./~/uuid/rng-browser.js
// module id = 5564
// module chunks = 4