Fix bug with undefined window in web workers

Fixes #8
This commit is contained in:
Emil Bay 2017-11-03 08:17:38 +01:00
parent 5511bafdba
commit f336097b6a
No known key found for this signature in database
GPG Key ID: AF1CF37B90FBF638

View File

@ -1,9 +1,9 @@
var assert = require('nanoassert') var assert = require('nanoassert')
var randombytes = (function () { var randombytes = (function () {
var QUOTA = 65536 // limit for QuotaExceededException var QUOTA = 65536 // limit for QuotaExceededException
var crypto = typeof window !== 'undefined' ? (window.crypto || window.msCrypto) : null var crypto = typeof global !== 'undefined' ? crypto = (global.crypto || global.msCrypto) : null
function windowBytes (out, n) { function browserBytes (out, n) {
for (var i = 0; i < n; i += QUOTA) { for (var i = 0; i < n; i += QUOTA) {
crypto.getRandomValues(out.subarray(i, i + Math.min(n - i, QUOTA))) crypto.getRandomValues(out.subarray(i, i + Math.min(n - i, QUOTA)))
} }
@ -18,7 +18,7 @@ var randombytes = (function () {
} }
if (crypto && crypto.getRandomValues) { if (crypto && crypto.getRandomValues) {
return windowBytes return browserBytes
} else if (typeof require !== 'undefined') { } else if (typeof require !== 'undefined') {
// Node.js. // Node.js.
crypto = require('cry' + 'pto'); crypto = require('cry' + 'pto');