lib/minimize.js
function reduce(html, element, next) {
    //
    // Run the registered plugins before the element is processed.
    // Note that the plugins are not run in order.
    //
    if (sync) {
      plugins.forEach(createPlug(element));
      return open(element, html, run(element, next));
    }

    async.eachSeries(plugins, createPlug(element), function finished(error) {
      if (error) return next(error);
      return open(element, html, run(element, next));
    });
  }
function reduce(html, element, next) {
    //
    // Run the registered plugins before the element is processed.
    // Note that the plugins are not run in order.
    //
    if (sync) {
      plugins.forEach(createPlug(element));
      return open(element, html, run(element, next));
    }

    async.eachSeries(plugins, createPlug(element), function finished(error) {
      if (error) return next(error);
      return open(element, html, run(element, next));
    });
  }
function reduce ( html , element , next ) { // // Run the registered plugins before the element is processed. // Note that the plugins are not run in order. // if ( sync ) { plugins . forEach ( createPlug ( element ) ) ; return open ( element , html , run ( element , next ) ) ; } async . eachSeries ( plugins , createPlug ( element ) , function finished ( error ) { if ( error ) return next ( error ) ; return open ( element , html , run ( element , next ) ) ; } ) ; }
Reduce each HTML element and its children.

@param {String} html Current compiled HTML, memo.
@param {Object} element Current element.
@param {Function} step Completion callback
@returns {String} minimized HTML.
@api private
Reduce each HTML element and its children .