| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 9f23cb2 commit 2c92a1f
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -308,7 +308,7 @@ EventEmitter.prototype.prependOnceListener = | |||
| 308 | 308 | // emits a 'removeListener' event iff the listener was removed | |
| 309 | 309 | EventEmitter.prototype.removeListener = | |
| 310 | 310 | function removeListener(type, listener) { | |
| 311 | - var list, events, position, i; | ||
| 311 | + var list, events, position, i, originalListener; | ||
| 312 | 312 | ||
| 313 | 313 | if (typeof listener !== 'function') | |
| 314 | 314 | throw new TypeError('"listener" argument must be a function'); | |
@@ -327,14 +327,15 @@ EventEmitter.prototype.removeListener = | |||
| 327 | 327 | else { | |
| 328 | 328 | delete events[type]; | |
| 329 | 329 | if (events.removeListener) | |
| 330 | - this.emit('removeListener', type, listener); | ||
| 330 | + this.emit('removeListener', type, list.listener || listener); | ||
| 331 | 331 | } | |
| 332 | 332 | } else if (typeof list !== 'function') { | |
| 333 | 333 | position = -1; | |
| 334 | 334 | ||
| 335 | 335 | for (i = list.length; i-- > 0;) { | |
| 336 | 336 | if (list[i] === listener || | |
| 337 | 337 | (list[i].listener && list[i].listener === listener)) { | |
| 338 | + originalListener = list[i].listener; | ||
| 338 | 339 | position = i; | |
| 339 | 340 | break; | |
| 340 | 341 | } | |
@@ -356,7 +357,7 @@ EventEmitter.prototype.removeListener = | |||
| 356 | 357 | } | |
| 357 | 358 | ||
| 358 | 359 | if (events.removeListener) | |
| 359 | - this.emit('removeListener', type, listener); | ||
| 360 | + this.emit('removeListener', type, originalListener || listener); | ||
| 360 | 361 | } | |
| 361 | 362 | ||
| 362 | 363 | return this; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -102,3 +102,14 @@ e6.emit('hello'); | |||
| 102 | 102 | ||
| 103 | 103 | // Interal listener array [listener3] | |
| 104 | 104 | e6.emit('hello'); | |
| 105 | + | ||
| 106 | + const e7 = new events.EventEmitter(); | ||
| 107 | + | ||
| 108 | + const listener5 = () => {}; | ||
| 109 | + | ||
| 110 | + e7.once('hello', listener5); | ||
| 111 | + e7.on('removeListener', common.mustCall((eventName, listener) => { | ||
| 112 | + assert.strictEqual(eventName, 'hello'); | ||
| 113 | + assert.strictEqual(listener, listener5); | ||
| 114 | + })); | ||
| 115 | + e7.emit('hello'); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments