Test name | Executions per second |
---|---|
Native Event listeners | 341.8 Ops/sec |
Native Event listener with callbacks array | 11287.4 Ops/sec |
Custom EventTarget | 378.5 Ops/sec |
Custom EventTarget with callbacks array | 11822.0 Ops/sec |
Fake listeners array | 42331.5 Ops/sec |
let i = 1001;
const results = [];
while (--i) {
const index = i;
window.addEventListener('custom:test', () => {
results.push('Native Event listener ' + index);
}, {once: true});
}
window.dispatchEvent(new CustomEvent('custom:test', {bubbles: false}));
let i = 1001;
const callbacks = [];
const results = [];
while (--i) {
const index = i;
callbacks.push(() => {
results.push('Fake listeners array ' + index);
});
}
window.addEventListener('custom:test', () => {
results.push('Native Event listener ' + index);
let i = callbacks.length;
while (--i) callbacks[i]();
}, {once: true});
window.dispatchEvent(new CustomEvent('custom:test', {bubbles: false}));
let i = 1001;
const target = new EventTarget();
const results = [];
while (--i) {
const index = i;
target.addEventListener('custom:test', () => {
results.push('Custom EventTarget ' + index);
}, {once: true});
}
target.dispatchEvent(new CustomEvent('custom:test', {bubbles: false}));
let i = 1001;
const callbacks = [];
const target = new EventTarget();
const results = [];
while (--i) {
const index = i;
callbacks.push(() => {
results.push('Fake listeners array ' + index);
});
}
target.addEventListener('custom:test', () => {
results.push('Native Event listener ' + index);
let i = callbacks.length;
while (--i) callbacks[i]();
}, {once: true});
target.dispatchEvent(new CustomEvent('custom:test', {bubbles: false}));
let i = 1001;
const callbacks = [];
const results = [];
while (--i) {
const index = i;
callbacks.push(() => {
results.push('Fake listeners array ' + index);
});
}
i = callbacks.length;
while (--i) callbacks[i]();