Прочёл, но появился ещё один вопрос.
Внутри обработчики хранятся в массиве или в чём-то вроде WeakSet? Т.е. скажем у меня есть много объектов, которые используют один инстанс эмиттера. На события кто-то подписывается, кто-то отписывается. Когда объект перестаёт быть актуальным - его GC соберёт в какой-то момент, после того как на него не останется ссылок, но что будет с неактуальными обработчиками, которые забыли отписать? Если там не weakset, то на эти обработчики всегда будет по одной ссылке, т.к. на синглтон эмиттер всегда кто-то будет ссылаться, а он, в свой очередь будет держать ссылки на эти потерянные обработчики. Т.е. нужно будет заниматься ещё и очисткой устаревших обработчиков. С этой стороны получается, что лучше свой эмиттер для каждого объекта. Или я неправильно понимаю как реализован эмиттер в ноде?