Skip to content

Commit 991a8ec

Browse files
committed
fix: Make EventTarget methods enumerable
1 parent 9ab5dd8 commit 991a8ec

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

packages/react-native/src/private/webapis/dom/events/EventTarget.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,13 @@ export default class EventTarget {
258258
}
259259
}
260260

261+
// $FlowExpectedError[cannot-write]
262+
Object.defineProperties(EventTarget.prototype, {
263+
addEventListener: {enumerable: true},
264+
removeEventListener: {enumerable: true},
265+
dispatchEvent: {enumerable: true},
266+
});
267+
261268
setPlatformObject(EventTarget);
262269

263270
function validateCallback(callback: EventListener, methodName: string): void {

packages/react-native/src/private/webapis/dom/events/__tests__/EventTarget-itest.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,19 @@ function createListener(
5454
}
5555

5656
describe('EventTarget', () => {
57+
it('should have 3 enumerable methods', () => {
58+
const methods = new Set([
59+
'addEventListener',
60+
'removeEventListener',
61+
'dispatchEvent',
62+
]);
63+
for (const key in new EventTarget()) {
64+
expect(methods.has(key)).toBe(true);
65+
methods.delete(key);
66+
}
67+
expect(methods.size).toBe(0);
68+
});
69+
5770
describe('addEventListener', () => {
5871
it('should throw an error if event or callback are NOT passed', () => {
5972
const eventTarget = new EventTarget();

0 commit comments

Comments
 (0)