fix: allow bigInt in method name and TSLiteralType (#11547)

* refactor: add isLiteralPropertyName to parser utils

* address review comments [skip-ci]

* refactor: keyword is valid identifierName

* fix: allow bigint in TSLiteralType

* update typescript test whitelist
This commit is contained in:
Huáng Jùnliàng
2020-05-14 18:40:52 -04:00
committed by GitHub
parent de8264c8a7
commit 2f31ecf85d
11 changed files with 270 additions and 18 deletions

View File

@@ -691,6 +691,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
node.literal = (() => {
switch (this.state.type) {
case tt.num:
case tt.bigint:
case tt.string:
case tt._true:
case tt._false:
@@ -747,13 +748,15 @@ export default (superClass: Class<Parser>): Class<Parser> =>
}
case tt.string:
case tt.num:
case tt.bigint:
case tt._true:
case tt._false:
return this.tsParseLiteralTypeNode();
case tt.plusMin:
if (this.state.value === "-") {
const node: N.TsLiteralType = this.startNode();
if (this.lookahead().type !== tt.num) {
const nextToken = this.lookahead();
if (nextToken.type !== tt.num && nextToken.type !== tt.bigint) {
throw this.unexpected();
}
node.literal = this.parseMaybeUnary();