leave: function()

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();
                    }
                }
            },