From 3974c202cf36fbba55273e7e2c83d337eff7c0c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Thu, 10 Jun 2021 09:43:43 -0400 Subject: [PATCH] fix: avoid pushing double tc.brace after tt.braceL --- packages/babel-parser/src/plugins/jsx/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/babel-parser/src/plugins/jsx/index.js b/packages/babel-parser/src/plugins/jsx/index.js index ca06064682dc..99e1e62b1956 100644 --- a/packages/babel-parser/src/plugins/jsx/index.js +++ b/packages/babel-parser/src/plugins/jsx/index.js @@ -614,7 +614,6 @@ export default (superClass: Class): Class => } updateContext(prevType: TokenType): void { - super.updateContext(prevType); const { context, type } = this.state; if (type === tt.braceL) { const curContext = context[context.length - 1]; @@ -622,6 +621,8 @@ export default (superClass: Class): Class => context.push(tc.brace); } else if (curContext === tc.j_expr) { context.push(tc.templateQuasi); + } else { + super.updateContext(prevType); } this.state.exprAllowed = true; } else if (type === tt.slash && prevType === tt.jsxTagStart) { @@ -643,6 +644,7 @@ export default (superClass: Class): Class => this.state.exprAllowed = false; } else { this.state.exprAllowed = type.beforeExpr; + super.updateContext(prevType); } } };