diff --git a/.changeset/four-jeans-hammer.md b/.changeset/four-jeans-hammer.md new file mode 100644 index 00000000..878279d4 --- /dev/null +++ b/.changeset/four-jeans-hammer.md @@ -0,0 +1,5 @@ +--- +"@edge-runtime/vm": patch +--- + +fix: don't expose __conditionallyUpdatesHandlerList diff --git a/packages/vm/src/edge-vm.ts b/packages/vm/src/edge-vm.ts index 2763344a..de430e82 100644 --- a/packages/vm/src/edge-vm.ts +++ b/packages/vm/src/edge-vm.ts @@ -188,13 +188,18 @@ function getDefineEventListenersCode() { writable: true, }) - function __conditionallyUpdatesHandlerList(eventType) { - if (eventType === 'unhandledrejection') { - self.__onUnhandledRejectionHandlers = self.__listeners[eventType]; - } else if (eventType === 'error') { - self.__onErrorHandlers = self.__listeners[eventType]; - } - } + Object.defineProperty(self, '__conditionallyUpdatesHandlerList', { + configurable: false, + enumerable: false, + value: function(eventType) { + if (eventType === 'unhandledrejection') { + self.__onUnhandledRejectionHandlers = self.__listeners[eventType]; + } else if (eventType === 'error') { + self.__onErrorHandlers = self.__listeners[eventType]; + } + }, + writable: false, + }) function addEventListener(type, handler) { const eventType = type.toLowerCase(); @@ -204,7 +209,7 @@ function getDefineEventListenersCode() { self.__listeners[eventType] = self.__listeners[eventType] || []; self.__listeners[eventType].push(handler); - __conditionallyUpdatesHandlerList(eventType); + self.__conditionallyUpdatesHandlerList(eventType); } function removeEventListener(type, handler) { @@ -218,7 +223,7 @@ function getDefineEventListenersCode() { delete self.__listeners[eventType]; } } - __conditionallyUpdatesHandlerList(eventType); + self.__conditionallyUpdatesHandlerList(eventType); } ` } diff --git a/packages/vm/tests/edge-runtime.test.ts b/packages/vm/tests/edge-runtime.test.ts index c73918f7..b9e4fce2 100644 --- a/packages/vm/tests/edge-runtime.test.ts +++ b/packages/vm/tests/edge-runtime.test.ts @@ -33,6 +33,7 @@ describe('Global primitives', () => { const keys = runtime.evaluate(`(Object.keys(globalThis))`) expect(keys).not.toHaveLength(0) expect(keys).not.toContain('EdgeRuntime') + expect(keys).not.toContain('__conditionallyUpdatesHandlerList') }) it.each([