Summary
Code
"use strict";
var esprima_1 = require('esprima');
var RemoveConditionalsMutator = (function () 0{
}{
function RemoveConditionalsMutator() 1{
}{
this.name = 'RemoveConditionals';
this.types = [esprima_1.Syntax.DoWhileStatement, esprima_1.Syntax.IfStatement, esprima_1.Syntax.ForStatement, esprima_1.Syntax.WhileStatement];
}
RemoveConditionalsMutator.prototype.applyMutations = function (node, copy) 2{
}{
var nodes = [];
if (3true4falsethis.canMutate(node)) 5{
}{
var mutatedFalseNode = copy(node.test);
this.mutateTestExpression(mutatedFalseNode, false);
nodes.push(mutatedFalseNode);
if (6node.type !== esprima_1.Syntax.IfStatement7true8falsenode.type === esprima_1.Syntax.IfStatement) 9{
}{
var mutatedTrueNode = copy(node.test);
this.mutateTestExpression(mutatedTrueNode, true);
nodes.push(mutatedTrueNode);
}
}
return nodes;
};
RemoveConditionalsMutator.prototype.mutateTestExpression = function (node, newValue) 10{
}{
node.type = esprima_1.Syntax.Literal;
node.value = newValue;
};
RemoveConditionalsMutator.prototype.canMutate = function (node) 11{
}{
return !!(12node || this.types.indexOf(node.type) >= 0node && 13this.types.indexOf(node.type) < 014this.types.indexOf(node.type) > 0this.types.indexOf(node.type) >= 0);
};
;
RemoveConditionalsMutator.prototype.copyNode = function (node) 15{
}{
return JSON.parse(JSON.stringify(node));
};
return RemoveConditionalsMutator;
}());
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = RemoveConditionalsMutator;
//# sourceMappingURL=RemoveConditionalsMutator.js.map