Skip to content

Commit 078997f

Browse files
committed
fix: Make EventTarget methods enumerable
1 parent 1127e54 commit 078997f

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,12 @@ export default class EventTarget {
255255
}
256256
}
257257

258+
Object.defineProperties(EventTarget.prototype, {
259+
addEventListener: {enumerable: true},
260+
removeEventListener: {enumerable: true},
261+
dispatchEvent: {enumerable: true},
262+
});
263+
258264
setPlatformObject(EventTarget);
259265

260266
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)