Comparing version 0.17.2 to 0.18.0
@@ -6,2 +6,13 @@ # Change Log | ||
<a name="0.18.0"></a> | ||
# [0.18.0](https://github.com/stryker-mutator/stryker/compare/stryker@0.17.2...stryker@0.18.0) (2018-01-12) | ||
### Features | ||
* **Child processes:** Support process message polution ([#572](https://github.com/stryker-mutator/stryker/issues/572)) ([dbe4d84](https://github.com/stryker-mutator/stryker/commit/dbe4d84)) | ||
<a name="0.17.2"></a> | ||
@@ -8,0 +19,0 @@ ## [0.17.2](https://github.com/stryker-mutator/stryker/compare/stryker@0.17.1...stryker@0.17.2) (2018-01-10) |
{ | ||
"name": "stryker", | ||
"version": "0.17.2", | ||
"version": "0.18.0", | ||
"description": "The extendable JavaScript mutation testing framework", | ||
@@ -5,0 +5,0 @@ "main": "src/Stryker.js", |
export default class ChildProcessProxyWorker { | ||
private log; | ||
realSubject: any; | ||
@@ -6,2 +7,9 @@ constructor(); | ||
private listenToParent(); | ||
/** | ||
* Remove any addition message listeners that might me eavesdropping. | ||
* the @ngtools/webpack plugin listens to messages and throws an error whenever it could not handle a message | ||
* @see https://github.com/angular/angular-cli/blob/f776d3cf7982b64734c57fe4407434e9f4ec09f7/packages/%40ngtools/webpack/src/type_checker.ts#L79 | ||
* @param exceptListener The listener that should remain | ||
*/ | ||
private removeAnyAdditionalMessageListeners(exceptListener); | ||
} |
@@ -9,2 +9,3 @@ "use strict"; | ||
function ChildProcessProxyWorker() { | ||
this.log = log4js_1.getLogger(ChildProcessProxyWorker.name); | ||
this.listenToParent(); | ||
@@ -19,3 +20,3 @@ } | ||
var _this = this; | ||
process.on('message', function (serializedMessage) { | ||
var handler = function (serializedMessage) { | ||
var message = objectUtils_1.deserialize(serializedMessage); | ||
@@ -29,2 +30,3 @@ switch (message.kind) { | ||
_this.send('init_done'); | ||
_this.removeAnyAdditionalMessageListeners(handler); | ||
break; | ||
@@ -39,4 +41,22 @@ case messageProtocol_1.WorkerMessageKind.Work: | ||
}); | ||
_this.removeAnyAdditionalMessageListeners(handler); | ||
break; | ||
} | ||
var _a; | ||
}; | ||
process.on('message', handler); | ||
}; | ||
/** | ||
* Remove any addition message listeners that might me eavesdropping. | ||
* the @ngtools/webpack plugin listens to messages and throws an error whenever it could not handle a message | ||
* @see https://github.com/angular/angular-cli/blob/f776d3cf7982b64734c57fe4407434e9f4ec09f7/packages/%40ngtools/webpack/src/type_checker.ts#L79 | ||
* @param exceptListener The listener that should remain | ||
*/ | ||
ChildProcessProxyWorker.prototype.removeAnyAdditionalMessageListeners = function (exceptListener) { | ||
var _this = this; | ||
process.listeners('message').forEach(function (listener) { | ||
if (listener !== exceptListener) { | ||
_this.log.debug('Removing an additional message listener, we don\'t want eavesdropping on our inter-process communication: %s', listener.toString()); | ||
process.removeListener('message', listener); | ||
} | ||
}); | ||
@@ -43,0 +63,0 @@ }; |
313296
5814