src/delta_multi.js
function deltaDebugFiles(file) {
        try {
            logging.increaseIndentation();
            state.fileUnderTest = file;
            logging.logTargetChange(file, state.tmpDir);

            // try removing fileUnderTest completely
            var backup = makeBackupFileName();
            fs.renameSync(file, backup);
            if (options.predicate.test(state.mainFileTmpDir)) {
                return true;
            } else {
                // if that fails, then restore the fileUnderTest
                fs.renameSync(backup, file);
                if (fs.statSync(file).isDirectory()) {
                    var performedAtLeastOneReduction = false;
                    readDirSorted(file).forEach(function (child) {
                        // recurse on all files in the directory
                        performedAtLeastOneReduction |= deltaDebugFiles(child);
                    });
                    return performedAtLeastOneReduction;
                } else {
                    // specialized reductions
                    if (isJsOrJsonFile(file)) {
                        return delta_single.reduce(makeOptionsForSingleFileMode(file));
                    }
                    return false;
                }
            }
        } finally {
            logging.decreaseIndentation();
        }
    }
function deltaDebugFiles(file) {
        try {
            logging.increaseIndentation();
            state.fileUnderTest = file;
            logging.logTargetChange(file, state.tmpDir);

            // try removing fileUnderTest completely
            var backup = makeBackupFileName();
            fs.renameSync(file, backup);
            if (options.predicate.test(state.mainFileTmpDir)) {
                return true;
            } else {
                // if that fails, then restore the fileUnderTest
                fs.renameSync(backup, file);
                if (fs.statSync(file).isDirectory()) {
                    var performedAtLeastOneReduction = false;
                    readDirSorted(file).forEach(function (child) {
                        // recurse on all files in the directory
                        performedAtLeastOneReduction |= deltaDebugFiles(child);
                    });
                    return performedAtLeastOneReduction;
                } else {
                    // specialized reductions
                    if (isJsOrJsonFile(file)) {
                        return delta_single.reduce(makeOptionsForSingleFileMode(file));
                    }
                    return false;
                }
            }
        } finally {
            logging.decreaseIndentation();
        }
    }
function deltaDebugFiles ( file ) { try { logging . increaseIndentation ( ) ; state . fileUnderTest = file ; logging . logTargetChange ( file , state . tmpDir ) ; // try removing fileUnderTest completely var backup = makeBackupFileName ( ) ; fs . renameSync ( file , backup ) ; if ( options . predicate . test ( state . mainFileTmpDir ) ) { return true ; } else { // if that fails, then restore the fileUnderTest fs . renameSync ( backup , file ) ; if ( fs . statSync ( file ) . isDirectory ( ) ) { var performedAtLeastOneReduction = false ; readDirSorted ( file ) . forEach ( function ( child ) { // recurse on all files in the directory performedAtLeastOneReduction |= deltaDebugFiles ( child ) ; } ) ; return performedAtLeastOneReduction ; } else { // specialized reductions if ( isJsOrJsonFile ( file ) ) { return delta_single . reduce ( makeOptionsForSingleFileMode ( file ) ) ; } return false ; } } } finally { logging . decreaseIndentation ( ) ; } }
Recursively pass through the file-hierarchy and invoke delta_single.main on all files

@return boolean true if at least one reduction was performed successfully.
Recursively pass through the file - hierarchy and invoke delta_single . main on all files