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