mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
87 lines
1.7 KiB
JavaScript
87 lines
1.7 KiB
JavaScript
const EventEmitter = require("events").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();
|
|
});
|
|
|
|
bench("[monkey] EventEmitter.emit", () => {
|
|
var called = false;
|
|
monkey.emit("hello", {
|
|
preventDefault() {
|
|
id++;
|
|
called = true;
|
|
},
|
|
});
|
|
|
|
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", {
|
|
preventDefault() {
|
|
id++;
|
|
called = true;
|
|
},
|
|
});
|
|
emitter.off("hey", cb);
|
|
|
|
if (!called) throw new Error("not called");
|
|
});
|
|
|
|
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++;
|
|
},
|
|
});
|
|
monkey.off("hey", cb);
|
|
});
|
|
|
|
var target = new EventTarget();
|
|
target.addEventListener("hello", (event) => {});
|
|
bench("EventTarget.dispatch", () => {
|
|
target.dispatchEvent(event);
|
|
});
|
|
|
|
var hey = new Event("hey");
|
|
|
|
bench("EventTarget.on x 10_000 (handler)", () => {
|
|
var handler = (event) => {};
|
|
target.addEventListener("hey", handler);
|
|
|
|
for (let i = 0; i < 10_000; i++) target.dispatchEvent(hey);
|
|
target.removeEventListener("hey", handler);
|
|
});
|
|
|
|
await run();
|