diff options
Diffstat (limited to 'bench/snippets/emitter.js')
-rw-r--r-- | bench/snippets/emitter.js | 120 |
1 files changed, 65 insertions, 55 deletions
diff --git a/bench/snippets/emitter.js b/bench/snippets/emitter.js index 0dacf18ac..64209a176 100644 --- a/bench/snippets/emitter.js +++ b/bench/snippets/emitter.js @@ -1,71 +1,81 @@ -const EventEmitter = require("events").EventEmitter; +const EventEmitterNative = require("events").EventEmitter; +const TypedEmitter = require("tiny-typed-emitter").TypedEmitter; +const EventEmitter3 = require("eventemitter3").EventEmitter; import { bench, run } from "mitata"; - -const emitter = new EventEmitter(); const event = new Event("hello"); -emitter.on("hello", (event) => { - event.preventDefault(); -}); - var id = 0; -bench("EventEmitter.emit", () => { - emitter.emit("hello", { - preventDefault() { - id++; - }, - }); -}); - -var monkey = Object.assign({}, EventEmitter.prototype); -monkey.on("hello", (event) => { - event.preventDefault(); -}); +for (let [EventEmitter, className] of [ + [EventEmitterNative, "EventEmitter"], + [TypedEmitter, "TypedEmitter"], + [EventEmitter3, "EventEmitter3"], +]) { + const emitter = new EventEmitter(); -bench("[monkey] EventEmitter.emit", () => { - var called = false; - monkey.emit("hello", { - preventDefault() { - id++; - called = true; - }, + emitter.on("hello", (event) => { + event.preventDefault(); }); - if (!called) { - throw new Error("monkey failed"); - } -}); - -bench("EventEmitter.on x 10_000 (handler)", () => { - var cb = (event) => { - event.preventDefault(); - }; - emitter.on("hey", cb); - var called = false; - for (let i = 0; i < 10_000; i++) - emitter.emit("hey", { + bench(`${className}.emit`, () => { + emitter.emit("hello", { preventDefault() { id++; - called = true; }, }); - emitter.off("hey", cb); + }); - if (!called) throw new Error("not called"); -}); + bench(`${className}.on x 10_000 (handler)`, () => { + var cb = (event) => { + event.preventDefault(); + }; + emitter.on("hey", cb); + var called = false; + for (let i = 0; i < 10_000; i++) + emitter.emit("hey", { + preventDefault() { + id++; + called = true; + }, + }); + emitter.off("hey", cb); -bench("[monkey] EventEmitter.on x 10_000 (handler)", () => { - var cb = () => { - event.preventDefault(); - }; - monkey.on("hey", cb); - for (let i = 0; i < 10_000; i++) - monkey.emit("hey", { - preventDefault() { - id++; - }, + if (!called) throw new Error("not called"); + }); + + if (EventEmitter !== EventEmitter3) { + var monkey = Object.assign({}, EventEmitter.prototype); + monkey.on("hello", (event) => { + event.preventDefault(); }); - monkey.off("hey", cb); -}); + + bench(`[monkey] ${className}.emit`, () => { + var called = false; + monkey.emit("hello", { + preventDefault() { + id++; + called = true; + }, + }); + + if (!called) { + throw new Error("monkey failed"); + } + }); + + bench(`[monkey] ${className}.on x 10_000 (handler)`, () => { + var cb = () => { + event.preventDefault(); + }; + monkey.on("hey", cb); + for (let i = 0; i < 10_000; i++) + monkey.emit("hey", { + preventDefault() { + id++; + }, + }); + monkey.off("hey", cb); + }); + } +} var target = new EventTarget(); target.addEventListener("hello", (event) => {}); |