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