Fix Async Generic After Await Parsing Error (#11092)
* test: add test case * fix: reset awaitPos before parsing generic arrow fn * fix: maybeInArrowParameters reset to true
This commit is contained in:
@@ -1528,6 +1528,14 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
||||
if (!this.isRelational("<")) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
|
||||
const oldYieldPos = this.state.yieldPos;
|
||||
const oldAwaitPos = this.state.awaitPos;
|
||||
this.state.maybeInArrowParameters = true;
|
||||
this.state.yieldPos = -1;
|
||||
this.state.awaitPos = -1;
|
||||
|
||||
const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {
|
||||
const node: N.ArrowFunctionExpression = this.startNodeAt(
|
||||
startPos,
|
||||
@@ -1541,6 +1549,10 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
||||
return node;
|
||||
});
|
||||
|
||||
this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
|
||||
this.state.yieldPos = oldYieldPos;
|
||||
this.state.awaitPos = oldAwaitPos;
|
||||
|
||||
if (!res) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user