MessagePort: implement NodeEventTarget on the native listener list - #35811
Open
robobun wants to merge 13 commits into
Open
MessagePort: implement NodeEventTarget on the native listener list#35811robobun wants to merge 13 commits into
robobun wants to merge 13 commits into
Claude / Claude Code Review
completed
Jul 25, 2026 in 28m 39s
Code review found 1 potential issue
Found 1 candidates, confirmed 1. See review comments for details.
Details
| Severity | Count |
|---|---|
| 🔴 Important | 0 |
| 🟡 Nit | 1 |
| 🟣 Pre-existing | 0 |
| Severity | File:Line | Issue |
|---|---|---|
| 🟡 Nit | src/js/node/worker_threads.ts:641-659 |
fakeParentPort once() wrapper breaks same-fn dedup; track() overwrites unconditionally |
Annotations
Check warning on line 659 in src/js/node/worker_threads.ts
claude / Claude Code Review
fakeParentPort once() wrapper breaks same-fn dedup; track() overwrites unconditionally
`fakeParentPort()`'s `once()` (from d2869b4) creates a fresh `wrapper` closure per call, so native EventTarget dedup (keyed on callback identity) no longer applies: `parentPort.once('message', fn); parentPort.once('message', fn)` registers two listeners and `fn` fires twice. `track()` also does `set.set(listener, registered)` unconditionally, so the second call overwrites `fn→wrapper1` with `fn→wrapper2` and `off(fn)` can no longer remove `wrapper1`; same for `on(fn)` followed by `once(fn)`. The
Loading