aboutsummaryrefslogtreecommitdiff
path: root/bench/emitter/implementations.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'bench/emitter/implementations.mjs')
-rw-r--r--bench/emitter/implementations.mjs31
1 files changed, 31 insertions, 0 deletions
diff --git a/bench/emitter/implementations.mjs b/bench/emitter/implementations.mjs
new file mode 100644
index 000000000..2050ac38e
--- /dev/null
+++ b/bench/emitter/implementations.mjs
@@ -0,0 +1,31 @@
+import EventEmitter3 from "eventemitter3";
+import { group } from "mitata";
+import EventEmitterNative from "node:events";
+
+export const implementations = [
+ {
+ EventEmitter: EventEmitterNative,
+ name: process.isBun ? (EventEmitterNative.init ? "bun" : "C++") : "node:events",
+ monkey: true,
+ },
+ // { EventEmitter: EventEmitter3, name: "EventEmitter3" },
+].filter(Boolean);
+
+for (const impl of implementations) {
+ impl.EventEmitter?.setMaxListeners?.(Infinity);
+}
+
+export function groupForEmitter(name, cb) {
+ if (implementations.length === 1) {
+ return cb({
+ ...implementations[0],
+ name: `${name}: ${implementations[0].name}`,
+ });
+ } else {
+ return group(name, () => {
+ for (let impl of implementations) {
+ cb(impl);
+ }
+ });
+ }
+}