diff --git a/src/printer.js b/src/printer.js
index d39bbc2c..ed98b218 100644
--- a/src/printer.js
+++ b/src/printer.js
@@ -2482,6 +2482,7 @@ function printJSXChildren(path, options, print, jsxWhitespace) {
const beginSpace = /^\s+/.test(line);
if (beginSpace) {
children.push(jsxWhitespace);
+ children.push(softline);
}
const stripped = line.replace(/^\s+|\s+$/g, "");
@@ -2491,6 +2492,7 @@ function printJSXChildren(path, options, print, jsxWhitespace) {
const endSpace = /\s+$/.test(line);
if (endSpace) {
+ children.push(softline);
children.push(jsxWhitespace);
}
});
diff --git a/tests/jsx-significant-space/__snapshots__/jsfmt.spec.js.snap b/tests/jsx-significant-space/__snapshots__/jsfmt.spec.js.snap
index 095e3106..10ec614a 100644
--- a/tests/jsx-significant-space/__snapshots__/jsfmt.spec.js.snap
+++ b/tests/jsx-significant-space/__snapshots__/jsfmt.spec.js.snap
@@ -65,6 +65,16 @@ similar_2 =
similar_3 =
;
+
+regression_not_broken_end =
+
+ long text long text long text long text long text long text long text long text url long text long text
+
+
+regression_not_broken_begin =
+
+
long text long text long text long text long text long text long text long texturl long text long text
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
after = (
@@ -81,7 +91,8 @@ before = (
before_break1 = (
- {\\" \\"}foo
+ {\\" \\"}
+ foo
);
@@ -90,13 +101,15 @@ before_break2 = (
- {\\" \\"}foo
+ {\\" \\"}
+ foo
);
after_break = (
- foo{\\" \\"}
+ foo
+ {\\" \\"}
);
@@ -162,5 +175,26 @@ similar_3 = (
);
+
+regression_not_broken_end = (
+
+ long text long text long text long text long text long text long text long text
+ {\\" \\"}
+ url
+ {\\" \\"}
+ long text long text
+
+);
+
+regression_not_broken_begin = (
+
+
+ {\\" \\"}
+ long text long text long text long text long text long text long text long text
+ url
+ {\\" \\"}
+ long text long text
+
+);
"
`;
diff --git a/tests/jsx-significant-space/test.js b/tests/jsx-significant-space/test.js
index 31354e0c..6f25e76b 100644
--- a/tests/jsx-significant-space/test.js
+++ b/tests/jsx-significant-space/test.js
@@ -62,3 +62,13 @@ similar_2 =
similar_3 =
;
+
+not_broken_end =
+
+ long text long text long text long text long text long text long text long text url long text long text
+
+
+not_broken_begin =
+
+
long text long text long text long text long text long text long text long texturl long text long text
+