| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 
							- "use strict";
 
- // comment fixes
 
- module.exports = function(ast, comments, tokens) {
 
-   if (comments.length) {
 
-     var firstComment = comments[0];
 
-     var lastComment = comments[comments.length - 1];
 
-     // fixup program start
 
-     if (!tokens.length) {
 
-       // if no tokens, the program starts at the end of the last comment
 
-       ast.start = lastComment.end;
 
-       ast.loc.start.line = lastComment.loc.end.line;
 
-       ast.loc.start.column = lastComment.loc.end.column;
 
-       if (ast.leadingComments === null && ast.innerComments.length) {
 
-         ast.leadingComments = ast.innerComments;
 
-       }
 
-     } else if (firstComment.start < tokens[0].start) {
 
-       // if there are comments before the first token, the program starts at the first token
 
-       var token = tokens[0];
 
-       // ast.start = token.start;
 
-       // ast.loc.start.line = token.loc.start.line;
 
-       // ast.loc.start.column = token.loc.start.column;
 
-       // estraverse do not put leading comments on first node when the comment
 
-       // appear before the first token
 
-       if (ast.body.length) {
 
-         var node = ast.body[0];
 
-         node.leadingComments = [];
 
-         var firstTokenStart = token.start;
 
-         var len = comments.length;
 
-         for (var i = 0; i < len && comments[i].start < firstTokenStart; i++) {
 
-           node.leadingComments.push(comments[i]);
 
-         }
 
-       }
 
-     }
 
-     // fixup program end
 
-     if (tokens.length) {
 
-       var lastToken = tokens[tokens.length - 1];
 
-       if (lastComment.end > lastToken.end) {
 
-         // If there is a comment after the last token, the program ends at the
 
-         // last token and not the comment
 
-         // ast.end = lastToken.end;
 
-         ast.range[1] = lastToken.end;
 
-         ast.loc.end.line = lastToken.loc.end.line;
 
-         ast.loc.end.column = lastToken.loc.end.column;
 
-       }
 
-     }
 
-   } else {
 
-     if (!tokens.length) {
 
-       ast.loc.start.line = 1;
 
-       ast.loc.end.line = 1;
 
-     }
 
-   }
 
-   if (ast.body && ast.body.length > 0) {
 
-     ast.loc.start.line = ast.body[0].loc.start.line;
 
-     ast.range[0] = ast.body[0].start;
 
-   }
 
- };
 
 
  |