From 991a8ecb73cf9966f5227dafb96ed1757ce40434 Mon Sep 17 00:00:00 2001 From: D N <4661784+retyui@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:49:03 +0200 Subject: [PATCH] fix: Make EventTarget methods enumerable --- .../src/private/webapis/dom/events/EventTarget.js | 7 +++++++ .../dom/events/__tests__/EventTarget-itest.js | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/packages/react-native/src/private/webapis/dom/events/EventTarget.js b/packages/react-native/src/private/webapis/dom/events/EventTarget.js index 51a16621617c..99e7e0e53365 100644 --- a/packages/react-native/src/private/webapis/dom/events/EventTarget.js +++ b/packages/react-native/src/private/webapis/dom/events/EventTarget.js @@ -258,6 +258,13 @@ export default class EventTarget { } } +// $FlowExpectedError[cannot-write] +Object.defineProperties(EventTarget.prototype, { + addEventListener: {enumerable: true}, + removeEventListener: {enumerable: true}, + dispatchEvent: {enumerable: true}, +}); + setPlatformObject(EventTarget); function validateCallback(callback: EventListener, methodName: string): void { diff --git a/packages/react-native/src/private/webapis/dom/events/__tests__/EventTarget-itest.js b/packages/react-native/src/private/webapis/dom/events/__tests__/EventTarget-itest.js index f25173da3b1b..28dac4cb846c 100644 --- a/packages/react-native/src/private/webapis/dom/events/__tests__/EventTarget-itest.js +++ b/packages/react-native/src/private/webapis/dom/events/__tests__/EventTarget-itest.js @@ -54,6 +54,19 @@ function createListener( } describe('EventTarget', () => { + it('should have 3 enumerable methods', () => { + const methods = new Set([ + 'addEventListener', + 'removeEventListener', + 'dispatchEvent', + ]); + for (const key in new EventTarget()) { + expect(methods.has(key)).toBe(true); + methods.delete(key); + } + expect(methods.size).toBe(0); + }); + describe('addEventListener', () => { it('should throw an error if event or callback are NOT passed', () => { const eventTarget = new EventTarget();