aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-14 19:15:05 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-14 19:15:05 -0700
commita31eb6a80c18a8110097e1df69ef1308b0446f53 (patch)
tree59b9bf88e9512da7d7f11f17f1a421d469ce0f77
parentb0dd7bee5b22e49f2f2b8af92e4e1c7736f5d9a5 (diff)
downloadbun-a31eb6a80c18a8110097e1df69ef1308b0446f53.tar.gz
bun-a31eb6a80c18a8110097e1df69ef1308b0446f53.tar.zst
bun-a31eb6a80c18a8110097e1df69ef1308b0446f53.zip
Add missing `getRandomValues` to crypto polyfill
-rw-r--r--bench/snippets/crypto.mjs8
-rw-r--r--src/node-fallbacks/crypto.js10
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();
+};