aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets
diff options
context:
space:
mode:
authorGravatar dave caruso <me@paperdave.net> 2023-04-18 17:59:51 -0400
committerGravatar GitHub <noreply@github.com> 2023-04-18 14:59:51 -0700
commit96a2ed1040d5a0ca51ae41267cba4f8e5d0a6142 (patch)
tree5af89ada3aff9044bcdca75dbf0101bc4515f964 /bench/snippets
parent76deb51c294126406c8f0be5f13bb184c1ddb454 (diff)
downloadbun-96a2ed1040d5a0ca51ae41267cba4f8e5d0a6142.tar.gz
bun-96a2ed1040d5a0ca51ae41267cba4f8e5d0a6142.tar.zst
bun-96a2ed1040d5a0ca51ae41267cba4f8e5d0a6142.zip
implement `node:events` in javascript (#2604)
* initial event emitter reimplementation * implement most of node:events. tests passing * work on emitter * fix importing node:events * work on event emitter tests * event work * event work * event stuff and experimenting with a lazy createHash * cleanup crypto stuff i had on this branch * finish event stuff up * fix error monitor * validate listeners are functions * changes requested
Diffstat (limited to 'bench/snippets')
-rwxr-xr-xbench/snippets/bun.lockbbin1477 -> 0 bytes
-rw-r--r--bench/snippets/emitter.mjs101
-rw-r--r--bench/snippets/package.json7
3 files changed, 0 insertions, 108 deletions
diff --git a/bench/snippets/bun.lockb b/bench/snippets/bun.lockb
deleted file mode 100755
index 3acb6d075..000000000
--- a/bench/snippets/bun.lockb
+++ /dev/null
Binary files differ
diff --git a/bench/snippets/emitter.mjs b/bench/snippets/emitter.mjs
deleted file mode 100644
index f708cf77a..000000000
--- a/bench/snippets/emitter.mjs
+++ /dev/null
@@ -1,101 +0,0 @@
-// **so this file can run in node**
-import { createRequire } from "node:module";
-const require = createRequire(import.meta.url);
-// --
-
-const EventEmitterNative = require("node:events").EventEmitter;
-const TypedEmitter = require("tiny-typed-emitter").TypedEmitter;
-const EventEmitter3 = require("eventemitter3").EventEmitter;
-import { bench, run } from "../../node_modules/mitata/src/cli.mjs";
-const event = new Event("hello");
-var id = 0;
-for (let [EventEmitter, className] of [
- [EventEmitterNative, "EventEmitter"],
- [TypedEmitter, "TypedEmitter"],
- [EventEmitter3, "EventEmitter3"],
-]) {
- const emitter = new EventEmitter();
-
- emitter.on("hello", event => {
- event.preventDefault();
- });
-
- bench(`${className}.emit`, () => {
- emitter.emit("hello", {
- preventDefault() {
- id++;
- },
- });
- });
-
- 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);
-
- if (!called) throw new Error("not called");
- });
-
- if (EventEmitter !== EventEmitter3) {
- var monkey = Object.assign({}, EventEmitter.prototype);
- monkey.on("hello", event => {
- event.preventDefault();
- });
-
- 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 => {});
-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();
diff --git a/bench/snippets/package.json b/bench/snippets/package.json
deleted file mode 100644
index 6244001a8..000000000
--- a/bench/snippets/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "dependencies": {
- "eventemitter3": "^5.0.0",
- "tiny-typed-emitter": "latest"
- },
- "prettier": "../../.prettierrc.cjs"
-}