From 739ee674fea321366b8561029a9fc84ea5505e1c Mon Sep 17 00:00:00 2001 From: Jacobo Tabernero Date: Sun, 30 Jun 2019 21:49:51 +0200 Subject: [PATCH] Update: Allow more arguments in listeners --- arbitrary-emitter.js | 14 +++++++------- package.json | 4 ++-- tests/tests.js | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arbitrary-emitter.js b/arbitrary-emitter.js index f6190a1..0f0d025 100644 --- a/arbitrary-emitter.js +++ b/arbitrary-emitter.js @@ -11,17 +11,17 @@ module.exports = () => { events.delete(e.key) actions.delete(e.key) } else if (size === 1) { - actions.set(e.key, (a, b, c) => { + actions.set(e.key, function () { const fn = listeners[0] - if (fn) fn(a, b, c) + if (fn) fn(...arguments) }) } else { - actions.set(e.key, (a, b, c) => { + actions.set(e.key, function () { e.running.push(listeners) - let size = listeners.length - while (size > 0) { - const fn = listeners[--size] - if (fn) fn(a, b, c) + let s = size + while (s > 0) { + const fn = listeners[--s] + if (fn) fn(...arguments) } e.running.pop() }) diff --git a/package.json b/package.json index d027993..299fc62 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "arbitrary-emitter", - "version": "1.0.0", - "description": "High performance event emitter for modern browsers in ~450 bytes", + "version": "1.1.0", + "description": "High performance event emitter in ~450 bytes", "main": "arbitrary-emitter.js", "scripts": { "linter": "standard arbitrary-emitter.js tests/tests.js", diff --git a/tests/tests.js b/tests/tests.js index 021ed04..de2f55c 100644 --- a/tests/tests.js +++ b/tests/tests.js @@ -126,11 +126,11 @@ test('remove listener in a event with muliple listeners', t => { const emitter = ae() const out = [] const f1 = () => out.push(1) + const f3 = () => out.push(3) const f2 = () => { out.push(2) emitter.off('test', f3) } - const f3 = () => out.push(3) emitter.on('test', f1) emitter.on('test', f2) emitter.on('test', f3)