Skip to content

Commit 000f7a5

Browse files
committed
Don't slice whitespace in jsdoc parser unless needed
It's only needed when there's an indentation relative to the margin, which is rare. The common case is to skip the whitespace.
1 parent 7e4592e commit 000f7a5

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/compiler/parser.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8636,14 +8636,14 @@ namespace Parser {
86368636
break;
86378637
case SyntaxKind.WhitespaceTrivia:
86388638
// only collect whitespace if we're already saving comments or have just crossed the comment indent margin
8639-
const whitespace = scanner.getTokenText();
8639+
const whitespaceLength = scanner.getTextPos() - scanner.getTokenPos();
86408640
if (state === JSDocState.SavingComments) {
8641-
comments.push(whitespace);
8641+
comments.push(scanner.getTokenText());
86428642
}
8643-
else if (margin !== undefined && indent + whitespace.length > margin) {
8644-
comments.push(whitespace.slice(margin - indent));
8643+
else if (margin !== undefined && indent + whitespaceLength > margin) {
8644+
comments.push(scanner.getTokenText().slice(margin - indent));
86458645
}
8646-
indent += whitespace.length;
8646+
indent += whitespaceLength;
86478647
break;
86488648
case SyntaxKind.EndOfFileToken:
86498649
break loop;
@@ -8888,12 +8888,12 @@ namespace Parser {
88888888
pushComment(scanner.getTokenText());
88898889
}
88908890
else {
8891-
const whitespace = scanner.getTokenText();
8891+
const whitespaceLength = scanner.getTextPos() - scanner.getTokenPos();
88928892
// if the whitespace crosses the margin, take only the whitespace that passes the margin
8893-
if (margin !== undefined && indent + whitespace.length > margin) {
8894-
comments.push(whitespace.slice(margin - indent));
8893+
if (margin !== undefined && indent + whitespaceLength > margin) {
8894+
comments.push(scanner.getTokenText().slice(margin - indent));
88958895
}
8896-
indent += whitespace.length;
8896+
indent += whitespaceLength;
88978897
}
88988898
break;
88998899
case SyntaxKind.OpenBraceToken:

0 commit comments

Comments
 (0)