aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-11-08 15:53:37 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-11-08 15:53:37 -0800
commit14b51ef57c289f6a2622e0848b11d757183cd24d (patch)
treeffdeda9aa1552189bf5a3dcf7c4ee1bf1a80e8cf /src
parent7a836382b3ca96f7b0d2f94db4d1431949c4d24a (diff)
downloadbun-14b51ef57c289f6a2622e0848b11d757183cd24d.tar.gz
bun-14b51ef57c289f6a2622e0848b11d757183cd24d.tar.zst
bun-14b51ef57c289f6a2622e0848b11d757183cd24d.zip
Disable Object.freeze
Diffstat (limited to 'src')
-rw-r--r--src/runtime.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/runtime.js b/src/runtime.js
index 07219436d..1e86ef3b6 100644
--- a/src/runtime.js
+++ b/src/runtime.js
@@ -6,6 +6,20 @@ var __hasOwnProp = Object.prototype.hasOwnProperty;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+// We're disabling Object.freeze because it breaks CJS => ESM and can cause
+// issues with Suspense and other things that expect the CJS module namespace
+// to be mutable when the ESM module namespace is NOT mutable
+var __objectFreezePolyfill = new WeakSet();
+
+globalThis.Object.freeze = function freeze(obj) {
+ __objectFreezePolyfill.add(obj);
+ return obj;
+};
+
+globalThis.Object.isFrozen = function isFrozen(obj) {
+ return __objectFreezePolyfill.has(obj);
+};
+
export var __markAsModule = (target) =>
__defProp(target, "__esModule", { value: true, configurable: true });