{{random-uuid}}当前使用{{Math/random}}通过{{rand-int}}为v4 UUID生成随机数。此补丁的目的是如果可用,则使用加密强伪随机数生成器(PRNG)。
使用的函数是
大多数浏览器中的{{window.crypto.getRandomValues}}
IE11中的{{window.msCrypto.getRandomValues}}
不支持前者的浏览器或如果Node.js中的crypto模块不可用,则使用{{Math/random}}。
目前未使用
不支持Node.js的crypto模块时,使用{{crypto.randomBytes}}
Google Closure似乎没有提供功能检测或crypto-API的包装器,因此附加的补丁提案根据功能检测实现了一个shim。
一个悬而未决的问题是Node.js的{{crypto}}模块如何可用来,因为ClojureScripts的{{core.cljs}}似乎没有条件{{require}}Node.js模块,也许应该保持这种方式。