lib/compiler/ast-visitor.js
function addVisitFunction(type) {
    ASTVisitor.prototype['visit' + type] = function(node) {
        var self = this;
        var extraArgs = Array.prototype.slice.call(arguments, 1);

        if (DEBUG) {
            checkNode(node);
        }

        NODE_CHILDREN[type].forEach(function(property) {
            var value = node[property];

            if (_.isArray(value)) {
                value.forEach(function(item) {
                    if (item !== null) {
                        self.visit.apply(self, [item].concat(extraArgs));
                    }
                });
            } else if (value !== null && value !== undefined) {
                self.visit.apply(self, [value].concat(extraArgs));
            }
        });
    };
}
function addVisitFunction(type) {
    ASTVisitor.prototype['visit' + type] = function(node) {
        var self = this;
        var extraArgs = Array.prototype.slice.call(arguments, 1);

        if (DEBUG) {
            checkNode(node);
        }

        NODE_CHILDREN[type].forEach(function(property) {
            var value = node[property];

            if (_.isArray(value)) {
                value.forEach(function(item) {
                    if (item !== null) {
                        self.visit.apply(self, [item].concat(extraArgs));
                    }
                });
            } else if (value !== null && value !== undefined) {
                self.visit.apply(self, [value].concat(extraArgs));
            }
        });
    };
}
function addVisitFunction ( type ) { ASTVisitor . prototype [ 'visit' + type ] = function ( node ) { var self = this ; var extraArgs = Array . prototype . slice . call ( arguments , 1 ) ; if ( DEBUG ) { checkNode ( node ) ; } NODE_CHILDREN [ type ] . forEach ( function ( property ) { var value = node [ property ] ; if ( _ . isArray ( value ) ) { value . forEach ( function ( item ) { if ( item !== null ) { self . visit . apply ( self , [ item ] . concat ( extraArgs ) ) ; } } ) ; } else if ( value !== null && value !== undefined ) { self . visit . apply ( self , [ value ] . concat ( extraArgs ) ) ; } } ) ; } ; }
END DEBUGGING FUNCTIONS
END DEBUGGING FUNCTIONS