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:
Liam Doran
2020-02-04 17:06:04 -05:00
committed by GitHub
parent 636c1dc86d
commit 11d9826e77
3 changed files with 230 additions and 0 deletions

View File

@@ -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;
}