In the EventEmitter the events are stored in an plain Object instance. The event names that you use are added directly as property on the object so when you event names such as __proto__ it will break. One solution is to prefix the keys with a char such as ~.
Example case:
var EventEmitter = require('events').EventEmitter;
var e = new EventEmitter();
e.on('__proto__', function (bar) {
console.log('foo', bar);
});
e.emit('__proto__', 1);
Willing to create pull request if bug requires fixing ;)