From f7b1b38ae58afb6eaf3fc083f5ad3bdc7e1aa922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Fri, 8 Nov 2019 22:59:30 -0500 Subject: [PATCH] refactor: improve tsParseTypePredicateAsserts --- .../src/plugins/typescript/index.js | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/babel-parser/src/plugins/typescript/index.js b/packages/babel-parser/src/plugins/typescript/index.js index 448c62c94abe..8df9d4e7b239 100644 --- a/packages/babel-parser/src/plugins/typescript/index.js +++ b/packages/babel-parser/src/plugins/typescript/index.js @@ -1008,23 +1008,24 @@ export default (superClass: Class): Class => } tsParseTypePredicateAsserts(): boolean { - if (!this.tsIsIdentifier()) { + if ( + !this.match(tt.name) || + this.state.value !== "asserts" || + this.hasPrecedingLineBreak() + ) { return false; } - const containsEsc = this.state.containsEsc; - - const id = this.parseIdentifier(); - if ( - id.name !== "asserts" || - this.hasPrecedingLineBreak() || - (!this.tsIsIdentifier() && !this.match(tt._this)) - ) { + this.next(); + if (!this.match(tt.name) && !this.match(tt._this)) { return false; } if (containsEsc) { - this.raise(id.start, "Escape sequence in keyword asserts"); + this.raise( + this.state.lastTokStart, + "Escape sequence in keyword asserts", + ); } return true;