Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For some scenarios, if a user error in a libp2p event handler is thrown, the handler execution fails silently and the user has no way of knowing about the error.
The best solution according to the EventEmitter docs is to throw all the side effects of the
emit
in the global context, as it happens in node.js out of the box. Several browser shims for the EventEmitter I looked into leave this to the user and do not throw in the global context. Examples:As JS has a variety of shims for each building tool, it is not feasible to fix this upstream. I created proper-event-emitter that extends Event Emitter and wraps the
super.emit
with a try catch and throw it in the global context usingsetTimeout
Closes #751