Commit d9208ccdccb for nodejs

commit d9208ccdccb1c6cd5bd0011df0775e860c5d2d1e
Author: Dayun <dlekdbs6530@gmail.com>
Date:   Sun Sep 27 04:42:29 2026 +0900

    worker: remove messageerror listeners on exit

    Signed-off-by: Dayun <dlekdbs6530@gmail.com>
    PR-URL: https://github.com/nodejs/node/pull/66075
    Fixes: https://github.com/nodejs/node/issues/65782
    Reviewed-By: James M Snell <jasnell@gmail.com>

diff --git a/lib/internal/worker.js b/lib/internal/worker.js
index f3f3c23a5ab..728132f779e 100644
--- a/lib/internal/worker.js
+++ b/lib/internal/worker.js
@@ -393,7 +393,7 @@ class Worker extends EventEmitter {
     drainMessagePort(this[kPort]);
     destroyMainThreadPort(this.threadId);
     this.removeAllListeners('message');
-    this.removeAllListeners('messageerrors');
+    this.removeAllListeners('messageerror');
     this[kPublicPort].unref();
     this[kPort].unref();
     this[kDispose]();
diff --git a/test/parallel/test-worker-messageerror-listener-cleanup.js b/test/parallel/test-worker-messageerror-listener-cleanup.js
new file mode 100644
index 00000000000..1ede0d88254
--- /dev/null
+++ b/test/parallel/test-worker-messageerror-listener-cleanup.js
@@ -0,0 +1,16 @@
+'use strict';
+
+const common = require('../common');
+const assert = require('node:assert');
+const { Worker } = require('node:worker_threads');
+
+const worker = new Worker('', { eval: true });
+const listener = () => {};
+
+worker.on('message', listener);
+worker.on('messageerror', listener);
+
+worker.on('exit', common.mustCall(() => {
+  assert.strictEqual(worker.listenerCount('message'), 0);
+  assert.strictEqual(worker.listenerCount('messageerror'), 0);
+}));