From ca4936067a0b96b682c81a25dcec1b166e7634cb Mon Sep 17 00:00:00 2001 From: ryo-fujinone <117496712+ryo-fujinone@users.noreply.github.com> Date: Sun, 1 Jun 2025 06:20:49 +0900 Subject: [PATCH 1/2] fix: improve event prop merging --- src/misc/events.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/misc/events.js b/src/misc/events.js index 74af817..9f54871 100644 --- a/src/misc/events.js +++ b/src/misc/events.js @@ -13,7 +13,9 @@ export const mergeObjects = function (src, dst) { } const v = src[k]; try { - dst[k] = v; + if (dst[k] !== v) { + Object.defineProperty(dst, k, { value: v }); + } } catch (error) {} } return dst; From 065dc6091abf3d19c37536456b2bf8cff124192c Mon Sep 17 00:00:00 2001 From: ryo-fujinone <117496712+ryo-fujinone@users.noreply.github.com> Date: Sun, 1 Jun 2025 06:22:15 +0900 Subject: [PATCH 2/2] fix: add currentTarget --- src/misc/event-emitter.js | 6 ++++++ tests/event-target.spec.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/misc/event-emitter.js b/src/misc/event-emitter.js index c09cd02..dfec548 100644 --- a/src/misc/event-emitter.js +++ b/src/misc/event-emitter.js @@ -42,6 +42,12 @@ export const EventEmitter = function (nodeStyle) { writable: false, value: this, }); + if (!args[0].currentTarget) { + Object.defineProperty(args[0], "currentTarget", { + writable: false, + value: this, + }); + } } const legacylistener = emitter[`on${event}`]; if (legacylistener) { diff --git a/tests/event-target.spec.ts b/tests/event-target.spec.ts index 80d0d96..8dbddc1 100644 --- a/tests/event-target.spec.ts +++ b/tests/event-target.spec.ts @@ -7,7 +7,7 @@ test("event target should be xhr self", async ({ page }) => { const xhr = new XMLHttpRequest(); xhr.open("GET", "example1.txt"); xhr.addEventListener("load", function (e) { - resolve(e.target === xhr); + resolve(e.target === xhr && e.currentTarget === xhr); }); xhr.send(); });