Just like .emit('foo', 1, 2, 3). Initially thought for rest + spread but it adds around 50 bytes.
So I think it may be enough to have explicitly defined 3-4 arguments
That adds 4 bytes.
emit(type, a, b, c) {
list('*').concat(list(type)).forEach( f => { f(a, b, c); });
return ret;
}
Some faster implementations than node core's uses this tactic, but up to 6-8 args