Example #1
0
        fs.readFile(path.resolve(files_dir, file), "utf-8", function(err, src){
            if(err) return next(err);

            console.log("testing: " + path.basename(file));

            var out = generator(parser(src, {filename: file}));
            var expected = _.filter(src.split("\n"), function(line){
                return line.trim().indexOf("//") !== 0;
            }).join("\n").trim();

            if(out === expected){
                console.log("  ...passed");
                next();
            }else{
                console.log();
                console.log(diff(expected, out, {n_surrounding: 3}));
                console.log();
                console.log("testing: " + path.basename(file));
                next(new Error("see diff"));
            }
        });
Example #2
0
module.exports = function (input, options) {
  options = options || {}

  var src = _.isString(input) ? input : null
  var toLoc = src ? EStreeLoc(src, options.filepath) : _.noop
  var ast = src ? parser(src, options.parser_options) : input

  var compiled = compile(ast, {
    toLoc: toLoc
  })

  var out = escodegen.generate({
    'loc': toLoc(0, src.length - 1),
    'type': 'Program',
    'body': compiled.body
  }, {
    format: {
      quotes: 'double',
      indent: {
        style: '  '
      }
    },
    sourceMap: true,
    sourceContent: src,
    sourceMapWithCode: true
  })

  var r = {
    code: out.code,
    warnings: compiled.warnings
  }

  if (options.inline_source_map) {
    r.code += '\n//# sourceMappingURL=data:application/json;base64,' +
            btoa(out.map.toString()) +
            '\n'
  }
  return r
}