| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 96bdfae commit f6f0b38
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -270,7 +270,7 @@ EventEmitter.prototype.once = function once(type, listener) { | |||
| 270 | 270 | // emits a 'removeListener' event iff the listener was removed | |
| 271 | 271 | EventEmitter.prototype.removeListener = | |
| 272 | 272 | function removeListener(type, listener) { | |
| 273 | - var list, events, position, i; | ||
| 273 | + var list, events, position, i, originalListener; | ||
| 274 | 274 | ||
| 275 | 275 | if (typeof listener !== 'function') | |
| 276 | 276 | throw new TypeError('listener must be a function'); | |
@@ -289,14 +289,15 @@ EventEmitter.prototype.removeListener = | |||
| 289 | 289 | else { | |
| 290 | 290 | delete events[type]; | |
| 291 | 291 | if (events.removeListener) | |
| 292 | - this.emit('removeListener', type, listener); | ||
| 292 | + this.emit('removeListener', type, list.listener || listener); | ||
| 293 | 293 | } | |
| 294 | 294 | } else if (typeof list !== 'function') { | |
| 295 | 295 | position = -1; | |
| 296 | 296 | ||
| 297 | 297 | for (i = list.length; i-- > 0;) { | |
| 298 | 298 | if (list[i] === listener || | |
| 299 | 299 | (list[i].listener && list[i].listener === listener)) { | |
| 300 | + originalListener = list[i].listener; | ||
| 300 | 301 | position = i; | |
| 301 | 302 | break; | |
| 302 | 303 | } | |
@@ -318,7 +319,7 @@ EventEmitter.prototype.removeListener = | |||
| 318 | 319 | } | |
| 319 | 320 | ||
| 320 | 321 | if (events.removeListener) | |
| 321 | - this.emit('removeListener', type, listener); | ||
| 322 | + this.emit('removeListener', type, originalListener || listener); | ||
| 322 | 323 | } | |
| 323 | 324 | ||
| 324 | 325 | return this; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -98,3 +98,14 @@ e6.emit('hello'); | |||
| 98 | 98 | ||
| 99 | 99 | // Interal listener array [listener3] | |
| 100 | 100 | e6.emit('hello'); | |
| 101 | + | ||
| 102 | + const e7 = new events.EventEmitter(); | ||
| 103 | + | ||
| 104 | + const listener5 = () => {}; | ||
| 105 | + | ||
| 106 | + e7.once('hello', listener5); | ||
| 107 | + e7.on('removeListener', common.mustCall((eventName, listener) => { | ||
| 108 | + assert.strictEqual(eventName, 'hello'); | ||
| 109 | + assert.strictEqual(listener, listener5); | ||
| 110 | + })); | ||
| 111 | + e7.emit('hello'); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments