| Index: third_party/WebKit/Source/devtools/front_end/formatter_worker/AcornTokenizer.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/formatter_worker/AcornTokenizer.js b/third_party/WebKit/Source/devtools/front_end/formatter_worker/AcornTokenizer.js
|
| index 395c8e5400b5f2dca3ff99b186d9fce0e6774e88..e18423f8e32e70689a4cee5440adf8692217fa0c 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/formatter_worker/AcornTokenizer.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/formatter_worker/AcornTokenizer.js
|
| @@ -12,8 +12,7 @@ FormatterWorker.AcornTokenizer = class {
|
| this._content = content;
|
| this._comments = [];
|
| this._tokenizer = acorn.tokenizer(this._content, {ecmaVersion: 8, onComment: this._comments});
|
| - this._lineEndings = this._content.computeLineEndings();
|
| - this._lineNumber = 0;
|
| + this._textCursor = new TextUtils.TextCursor(this._content.computeLineEndings());
|
| this._tokenLineStart = 0;
|
| this._tokenLineEnd = 0;
|
| this._nextTokenInternal();
|
| @@ -78,16 +77,6 @@ FormatterWorker.AcornTokenizer = class {
|
| }
|
|
|
| /**
|
| - * @param {number} position
|
| - * @return {number}
|
| - */
|
| - _rollLineNumberToPosition(position) {
|
| - while (this._lineNumber + 1 < this._lineEndings.length && position > this._lineEndings[this._lineNumber])
|
| - ++this._lineNumber;
|
| - return this._lineNumber;
|
| - }
|
| -
|
| - /**
|
| * @return {?Acorn.TokenOrComment}
|
| */
|
| nextToken() {
|
| @@ -95,10 +84,12 @@ FormatterWorker.AcornTokenizer = class {
|
| if (token.type === acorn.tokTypes.eof)
|
| return null;
|
|
|
| - this._tokenLineStart = this._rollLineNumberToPosition(token.start);
|
| - this._tokenLineEnd = this._rollLineNumberToPosition(token.end);
|
| - this._tokenColumnStart =
|
| - this._tokenLineStart > 0 ? token.start - this._lineEndings[this._tokenLineStart - 1] - 1 : token.start;
|
| + this._textCursor.advance(token.start);
|
| + this._tokenLineStart = this._textCursor.lineNumber();
|
| + this._tokenColumnStart = this._textCursor.columnNumber();
|
| +
|
| + this._textCursor.advance(token.end);
|
| + this._tokenLineEnd = this._textCursor.lineNumber();
|
| return token;
|
| }
|
|
|
|
|