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