diff --git a/src/language-html/embed.js b/src/language-html/embed.js
index 739c1c64b..115f5fac7 100644
--- a/src/language-html/embed.js
+++ b/src/language-html/embed.js
@@ -91,7 +91,8 @@ function embed(path, options) {
if (
attrMap &&
(attrMap.type === "module" ||
- (attrMap.type === "text/babel" &&
+ ((attrMap.type === "text/babel" ||
+ attrMap.type === "text/jsx") &&
attrMap["data-type"] === "module"))
) {
sourceType = "module";
diff --git a/src/language-html/utils/index.js b/src/language-html/utils/index.js
index bd599719b..1196bbd16 100644
--- a/src/language-html/utils/index.js
+++ b/src/language-html/utils/index.js
@@ -343,6 +343,7 @@ function inferParserByTypeAttribute(type) {
case "module":
case "text/javascript":
case "text/babel":
+ case "text/jsx":
case "application/javascript":
return "babel";
diff --git a/tests/format/html/js/__snapshots__/format.test.js.snap b/tests/format/html/js/__snapshots__/format.test.js.snap
index fb020c72e..5de24a784 100644
--- a/tests/format/html/js/__snapshots__/format.test.js.snap
+++ b/tests/format/html/js/__snapshots__/format.test.js.snap
@@ -38,6 +38,10 @@ printWidth: 80
+
+
+
+
+
+
+
+
+
+
+
+