Skip to content

Commit

Permalink
better handling of spliced events inside emits
Browse files Browse the repository at this point in the history
  • Loading branch information
kamicane committed Apr 12, 2012
1 parent 4c9acce commit b3ae764
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions util/emitter.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ module.exports = prime({
var listeners = this._listeners, events
if (listeners && (events = listeners[event]) && events.length){
var index = array.indexOf(events, fn)
if (index > -1) events.splice(index, 1)
if (index > -1) delete events[index]
}
return this
},
Expand All @@ -27,9 +27,11 @@ module.exports = prime({
var listeners = this._listeners, events
if (listeners && (events = listeners[event]) && events.length){
var args = (arguments.length > 1) ? array.slice(arguments, 1) : []
array.forEach(events.slice(), function(event){
event.apply(this, args)
}, this)
for (var i = 0; i < events.length; i++){
var evt = events[i]
if (evt) evt.apply(this, args)
else events.splice(i--, 1)
}
}
return this
}
Expand Down

0 comments on commit b3ae764

Please sign in to comment.