Commit 98dbf6070e8 for nodejs

commit 98dbf6070e8439e530f1678b11962a0f3719e1f6
Author: Ved Chaudhari <84765263+vedchaudhari@users.noreply.github.com>
Date:   Tue Oct 27 16:28:13 2026 +0530

    events: report original once() listener on removal

    When a `once()` listener is removed, emit the original user-defined
    function in the `removeListener` event instead of the internal wrapper,
    matching the behavior of the single-listener path.

    Assisted-by: claude:opus-5.5
    Signed-off-by: vedchaudhari <vedc2853@gmail.com>
    PR-URL: https://github.com/nodejs/node/pull/66621
    Refs: https://github.com/nodejs/node/issues/5551
    Refs: https://github.com/nodejs/node/pull/6394
    Refs: https://github.com/nodejs/node/pull/33596
    Reviewed-By: Chemi Atlow <chemi@atlow.co.il>

diff --git a/lib/events.js b/lib/events.js
index 8b20ea994d6..4866073de81 100644
--- a/lib/events.js
+++ b/lib/events.js
@@ -725,7 +725,7 @@ EventEmitter.prototype.removeListener =
           events[type] = list[0];

         if (events.removeListener !== undefined)
-          this.emit('removeListener', type, listener);
+          this.emit('removeListener', type, listener.listener || listener);
       }

       return this;
diff --git a/test/parallel/test-event-emitter-remove-listeners.js b/test/parallel/test-event-emitter-remove-listeners.js
index e9e4a74a5b6..fe36554cc64 100644
--- a/test/parallel/test-event-emitter-remove-listeners.js
+++ b/test/parallel/test-event-emitter-remove-listeners.js
@@ -138,6 +138,18 @@ function listener2() {}
   ee.emit('hello');
 }

+{
+  const ee = new EventEmitter();
+
+  ee.once('hello', listener1);
+  ee.on('hello', listener2);
+  ee.on('removeListener', common.mustCall((eventName, listener) => {
+    assert.strictEqual(eventName, 'hello');
+    assert.strictEqual(listener, listener1);
+  }));
+  ee.emit('hello');
+}
+
 {
   const ee = new EventEmitter();