code: function addLineNumbers(ast, source) {
    var i;
    var sourcePosition = 0;
    var sourceLine = 1;
    var sourceColumn = 1;
    var prevBreak = false;
    walk(ast, function (node) {
      if (typeof node.pos !== 'undefined') {
        if (node.pos < sourcePosition) {
          sourcePosition = 0;
          sourceLine = 1;
          sourceColumn = 1;
        }
        for (i = sourcePosition; i < node.pos; i++) {
          var c = source.charAt(i);
          if (c === "\n") {
            if (!prevBreak) {
              sourceLine++;
            }
            sourceColumn = 1;
            prevBreak = false;
          } else if (c === "\r" || c === "\u2028" || c === "\u2029") {
            sourceLine++;
            sourceColumn = 1;
            prevBreak = true;
          } else {
            sourceColumn++;
            prevBreak = false;
          }
        }
        node.line = sourceLine;
        node.column = sourceColumn;
        sourcePosition = i;
      }
    });
  }
docs: /*
  Add line numbers to ast nodes.
  @param {Object|AstNode} ast Root AST node for file.
  @param {String} source Source code for AST.