in legacy/javascript/src/refactor.js [366:393]
leave: function (node) {
if (node.type === 'LogicalExpression') {
var expression1 = node.left;
var expression2 = node.right;
if (engine.isPiranhaLiteral(expression1)) {
engine.changed = true;
return engine.reduceLogicalExpression(expression1, expression2, node.operator);
}
if (engine.isPiranhaLiteral(expression2)) {
engine.changed = true;
return engine.reduceLogicalExpression(expression2, expression1, node.operator);
}
} else if (
node.type === 'UnaryExpression' &&
node.operator === '!' &&
engine.isPiranhaLiteral(node.argument)
) {
if (node.argument.value === true) {
engine.changed = true;
return engine.falseLiteral();
} else if (node.argument.value === false) {
engine.changed = true;
return engine.trueLiteral();
}
}
},