Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
events: remove type check for event type
Strict checking for typeof types broke backwards compatibility for other
libraries. This reverts those checks.

The subclass test has been changed to ensure all operations can be
performed on the inherited EE before instantiation. Including the
ability to set event names with numbers.
  • Loading branch information
trevnorris committed Mar 4, 2013
1 parent 890dc2e commit 0468861
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 15 deletions.
12 changes: 0 additions & 12 deletions lib/events.js
Expand Up @@ -125,8 +125,6 @@ EventEmitter.prototype.emit = function(type) {
EventEmitter.prototype.addListener = function(type, listener) {
var m;

if (typeof type !== 'string')
throw TypeError('type must be a string');
if (typeof listener !== 'function')
throw TypeError('listener must be a function');

Expand Down Expand Up @@ -168,8 +166,6 @@ EventEmitter.prototype.addListener = function(type, listener) {
EventEmitter.prototype.on = EventEmitter.prototype.addListener;

EventEmitter.prototype.once = function(type, listener) {
if (typeof type !== 'string')
throw TypeError('type must be a string');
if (typeof listener !== 'function')
throw TypeError('listener must be a function');

Expand All @@ -188,8 +184,6 @@ EventEmitter.prototype.once = function(type, listener) {
EventEmitter.prototype.removeListener = function(type, listener) {
var list, position, length, i;

if (typeof type !== 'string')
throw TypeError('type must be a string');
if (typeof listener !== 'function')
throw TypeError('listener must be a function');

Expand Down Expand Up @@ -235,9 +229,6 @@ EventEmitter.prototype.removeListener = function(type, listener) {
EventEmitter.prototype.removeAllListeners = function(type) {
var key, listeners;

if (arguments.length > 0 && typeof type !== 'string')
throw TypeError('type must not be set or must be a string');

if (!this._events)
return this;

Expand Down Expand Up @@ -276,9 +267,6 @@ EventEmitter.prototype.removeAllListeners = function(type) {
};

EventEmitter.prototype.listeners = function(type) {
if (typeof type !== 'string')
throw TypeError('event type must be a string');

if (!this._events || !this._events[type])
return [];
if (typeof this._events[type] === 'function')
Expand Down
7 changes: 4 additions & 3 deletions test/simple/test-event-emitter-subclass.js
Expand Up @@ -27,9 +27,9 @@ var util = require('util');
util.inherits(MyEE, EventEmitter);

function MyEE(cb) {
this.emit('bar');
this.on('foo', cb);
process.nextTick(this.emit.bind(this, 'foo'));
this.once(1, cb);
this.emit(1);
this.removeAllListeners();
EventEmitter.call(this);
}

Expand All @@ -50,5 +50,6 @@ assert.throws(function() {

process.on('exit', function() {
assert(called);
assert.deepEqual(myee._events, {});
console.log('ok');
});

1 comment on commit 0468861

@mscdex
Copy link

@mscdex mscdex commented on 0468861 Mar 4, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+10

Please sign in to comment.