code: function (next) {
          var ctx = {
            config: config,
            filename: filename,
            src: src
          }
  
          // Fake map for empty source
          if (ctx.src.trim() === '') {
            ctx.src = ''
            ctx.map = {
              version: 3,
              names: [],
              mappings: 'A'
            }
            next(null, ctx)
          } else {
            var newCtx
            async.detectSeries(
              parsers,
              function (parser, callback) {
                parser(extend({}, ctx), function (err, result) {
                  if (err) {
                    return done(err)
                  }
                  if (!result || !result.map) {
                    return callback(false)
                  } else {
                    newCtx = result
                    return callback(true)
                  }
                })
              },
              function (found) {
                if (found) {
                  next(null, newCtx)
                } else {
                  parseCss(ctx, next)
                }
              }
            )
          }
        }
docs: 1. Parse source