- Consolidated duplicate UndoManagers to single instance - Fixed connection promise to only resolve on 'connected' status - Fixed WebSocketProvider import (WebsocketProvider) - Added proper doc.destroy() cleanup - Renamed isPresenceInitialized property to avoid conflict Co-Authored-By: Paperclip <noreply@paperclip.ing>
29 lines
709 B
JavaScript
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
|