diff options
author | 2022-09-14 19:15:05 -0700 | |
---|---|---|
committer | 2022-09-14 19:15:05 -0700 | |
commit | a31eb6a80c18a8110097e1df69ef1308b0446f53 (patch) | |
tree | 59b9bf88e9512da7d7f11f17f1a421d469ce0f77 | |
parent | b0dd7bee5b22e49f2f2b8af92e4e1c7736f5d9a5 (diff) | |
download | bun-a31eb6a80c18a8110097e1df69ef1308b0446f53.tar.gz bun-a31eb6a80c18a8110097e1df69ef1308b0446f53.tar.zst bun-a31eb6a80c18a8110097e1df69ef1308b0446f53.zip |
Add missing `getRandomValues` to crypto polyfill
-rw-r--r-- | bench/snippets/crypto.mjs | 8 | ||||
-rw-r--r-- | src/node-fallbacks/crypto.js | 10 |
2 files changed, 12 insertions, 6 deletions
diff --git a/bench/snippets/crypto.mjs b/bench/snippets/crypto.mjs index 132e6595d..6c0a74eaa 100644 --- a/bench/snippets/crypto.mjs +++ b/bench/snippets/crypto.mjs @@ -1,10 +1,10 @@ // so it can run in environments without node module resolution import { bench, run } from "../node_modules/mitata/src/cli.mjs"; -var crypto = globalThis.crypto; -// web crypto is not a global in node -if (!crypto) { - crypto = await import("crypto"); +var crypto = require("crypto"); + +if (!crypto.getRandomValues) { + crypto.getRandomValues = globalThis.crypto.getRandomValues; } var foo = new Uint8Array(65536); diff --git a/src/node-fallbacks/crypto.js b/src/node-fallbacks/crypto.js index 2ab82cc89..7b72c4ea1 100644 --- a/src/node-fallbacks/crypto.js +++ b/src/node-fallbacks/crypto.js @@ -1,4 +1,10 @@ export * from "crypto-browserify"; -const { randomUUID } = crypto; -export { randomUUID }; +// we deliberately reference crypto. directly here because we want to preserve the This binding +export var getRandomValues = (array) => { + return crypto.getRandomValues(array); +}; + +export var randomUUID = () => { + return crypto.randomUUID(); +}; |