diff --git a/crates/oxc_parser/src/jsx/mod.rs b/crates/oxc_parser/src/jsx/mod.rs
index 74ad0a579..eac960834 100644
--- a/crates/oxc_parser/src/jsx/mod.rs
+++ b/crates/oxc_parser/src/jsx/mod.rs
@@ -336,6 +336,13 @@ impl<'a> Parser<'a> {
let expr = self.parse_jsx_expression_container(false)?;
Ok(JSXAttributeValue::ExpressionContainer(expr))
}
+ Kind::LAngle => {
+ if self.peek_at(Kind::RAngle) {
+ self.parse_jsx_fragment().map(JSXAttributeValue::Fragment)
+ } else {
+ self.parse_jsx_element(false).map(JSXAttributeValue::Element)
+ }
+ }
_ => Err(self.unexpected()),
}
}
diff --git a/tasks/coverage/typescript.snap b/tasks/coverage/typescript.snap
index 93ed9b9d1..9f08c0ff0 100644
--- a/tasks/coverage/typescript.snap
+++ b/tasks/coverage/typescript.snap
@@ -1,7 +1,7 @@
TypeScript Summary:
AST Parsed : 2336/2340 (99.83%)
Positive Passed: 2330/2340 (99.57%)
-Negative Passed: 673/2532 (26.58%)
+Negative Passed: 672/2532 (26.54%)
Expect Syntax Error: "Symbols/ES5SymbolProperty2.ts"
Expect Syntax Error: "Symbols/ES5SymbolProperty6.ts"
Expect Syntax Error: "additionalChecks/noPropertyAccessFromIndexSignature1.ts"
@@ -1010,6 +1010,7 @@ Expect Syntax Error: "jsx/checkJsxChildrenProperty4.tsx"
Expect Syntax Error: "jsx/checkJsxChildrenProperty5.tsx"
Expect Syntax Error: "jsx/checkJsxChildrenProperty7.tsx"
Expect Syntax Error: "jsx/checkJsxGenericTagHasCorrectInferences.tsx"
+Expect Syntax Error: "jsx/jsxEsprimaFbTestSuite.tsx"
Expect Syntax Error: "jsx/jsxSpreadOverwritesAttributeStrict.tsx"
Expect Syntax Error: "jsx/tsxAttributeErrors.tsx"
Expect Syntax Error: "jsx/tsxAttributeResolution1.tsx"
@@ -8155,14 +8156,6 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts"
9 │
╰────
- × Unexpected token
- ╭─[jsx/jsxEsprimaFbTestSuite.tsx:40:1]
- 40 │
- 41 │ right=monkeys /> gorillas />;
- · ─
- 42 │
- ╰────
-
× TS18007: JSX expressions may not use the comma operator.
╭─[jsx/jsxParsingError1.tsx:13:1]
13 │ const class2 = "bar";