|
630 | 630 | // Load events module in order to access prototype elements on process like
|
631 | 631 | // process.addListener.
|
632 | 632 | var signalWraps = {};
|
633 |
| - var addListener = process.addListener; |
634 |
| - var removeListener = process.removeListener; |
635 | 633 |
|
636 | 634 | function isSignal(event) {
|
637 | 635 | return event.slice(0, 3) === 'SIG' &&
|
638 | 636 | startup.lazyConstants().hasOwnProperty(event);
|
639 | 637 | }
|
640 | 638 |
|
641 |
| - // Wrap addListener for the special signal types |
642 |
| - process.on = process.addListener = function(type, listener) { |
| 639 | + // Detect presence of a listener for the special signal types |
| 640 | + process.on('newListener', function(type, listener) { |
643 | 641 | if (isSignal(type) &&
|
644 | 642 | !signalWraps.hasOwnProperty(type)) {
|
645 | 643 | var Signal = process.binding('signal_wrap').Signal;
|
|
659 | 657 |
|
660 | 658 | signalWraps[type] = wrap;
|
661 | 659 | }
|
| 660 | + }); |
662 | 661 |
|
663 |
| - return addListener.apply(this, arguments); |
664 |
| - }; |
665 |
| - |
666 |
| - process.removeListener = function(type, listener) { |
667 |
| - var ret = removeListener.apply(this, arguments); |
668 |
| - if (isSignal(type)) { |
669 |
| - assert(signalWraps.hasOwnProperty(type)); |
670 |
| - |
671 |
| - if (NativeModule.require('events').listenerCount(this, type) === 0) { |
672 |
| - signalWraps[type].close(); |
673 |
| - delete signalWraps[type]; |
674 |
| - } |
| 662 | + process.on('removeListener', function(type, listener) { |
| 663 | + if (signalWraps.hasOwnProperty(type) && |
| 664 | + NativeModule.require('events').listenerCount(this, type) === 0) { |
| 665 | + signalWraps[type].close(); |
| 666 | + delete signalWraps[type]; |
675 | 667 | }
|
676 |
| - |
677 |
| - return ret; |
678 |
| - }; |
| 668 | + }); |
679 | 669 | };
|
680 | 670 |
|
681 | 671 |
|
|
0 commit comments