Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Исключение не обязательно бросать, чтобы получить из него стектрейс.
У меня получилось проще: https://github.com/mayorovp/tiny-safeevents/blob/master/safeevents.js
Вместо ловли стека через исключение я в явном виде отслеживаю этот стек во внутреннем массиве.
Это второй тест, который я проверял, он работает. Да, у меня по умолчанию циклы только детектятся — но не разрываются. Надо подписаться на 'onloop' и сделать throw, чтобы разорвать цикл.
Связано это с тем, что не вполне понятно как один обработчик в подобной системе сможет отменить другой — поэтому я не стал добавлять заведомо деструктивных действий в обработчик по умолчанию.
42 строки кода для выхода из лимба