Summary
The granular node:events parity suite has one remaining known failure: module-level events.on(emitter, eventName) should return an async iterator that yields arrays of emitted event arguments.
Repro
import { EventEmitter, on } from "node:events";
const em = new EventEmitter();
const iter = on(em, "data");
em.emit("data", 1);
em.emit("data", 2);
em.emit("data", 3);
const seen: number[] = [];
for await (const args of iter) {
seen.push(args[0]);
if (seen.length === 3) break;
}
console.log("seen:", seen);
Node prints:
Perry currently prints:
Tracking test
test-parity/node-suite/events/on/async-iterator-basic.ts
Currently listed in test-parity/known_failures.json as node-suite/events/on/async-iterator-basic.
Notes
This likely needs a real async-iterator object backed by EventEmitter listener queues. It is larger than the small EventEmitter runtime fixes already added for once, meta-events, module properties, and addAbortListener.
Summary
The granular
node:eventsparity suite has one remaining known failure: module-levelevents.on(emitter, eventName)should return an async iterator that yields arrays of emitted event arguments.Repro
Node prints:
Perry currently prints:
Tracking test
test-parity/node-suite/events/on/async-iterator-basic.tsCurrently listed in
test-parity/known_failures.jsonasnode-suite/events/on/async-iterator-basic.Notes
This likely needs a real async-iterator object backed by EventEmitter listener queues. It is larger than the small EventEmitter runtime fixes already added for
once, meta-events, module properties, andaddAbortListener.