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