{{random-uuid}} 当前使用 {{Math/random}} via {{rand-int}} 生成 v4 UUID 的随机数。此补丁旨在在可用的情况下使用密码学安全的 PRNG(伪随机数生成器)。
使用的函数有
大多数浏览器中的 {{window.crypto.getRandomValues}}
IE11 中的 {{window.msCrypto.getRandomValues}}
* 不支持上述的浏览器或 Node.js 上不可用 crypto 模块时使用的 {{Math/random}}
目前未使用
* Node.js 上的 {{crypto.randomBytes}}
Google Closure 似乎不提供功能检测或用于 crypto-APIs 的包装器,因此附件的补丁建议基于功能检测实现了一个 shimming。
一个悬而未决的问题是 Node.js 的 {{crypto}} 模块如何使可用,因为 ClojureScripts 的 {{core.cljs}} 似乎没有有条件的 {{require}} Node.js 模块,也许应该保持这种状态。