From 14c3f1215ded1aa18d2c5b0baca14f56162222da Mon Sep 17 00:00:00 2001 From: liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> Date: Mon, 22 Aug 2022 23:24:39 +0800 Subject: [PATCH] Fix: jsx with `retainLines` (#14869) --- packages/babel-generator/src/generators/jsx.ts | 4 ++-- .../fixtures/regression/jsx-with-retainLines/input.js | 9 +++++++++ .../regression/jsx-with-retainLines/options.json | 4 ++++ .../fixtures/regression/jsx-with-retainLines/output.js | 9 +++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/input.js create mode 100644 packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/options.json create mode 100644 packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/output.js diff --git a/packages/babel-generator/src/generators/jsx.ts b/packages/babel-generator/src/generators/jsx.ts index 3919626f08cf..92185143282b 100644 --- a/packages/babel-generator/src/generators/jsx.ts +++ b/packages/babel-generator/src/generators/jsx.ts @@ -55,9 +55,9 @@ export function JSXText(this: Printer, node: t.JSXText) { const raw = this.getPossibleRaw(node); if (raw !== undefined) { - this.token(raw); + this.token(raw, true); } else { - this.token(node.value); + this.token(node.value, true); } } diff --git a/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/input.js b/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/input.js new file mode 100644 index 000000000000..754e16538b2e --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/input.js @@ -0,0 +1,9 @@ +export default function Component() { + return ( + + ); +} diff --git a/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/options.json b/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/options.json new file mode 100644 index 000000000000..58077a14d3b5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["jsx"], + "retainLines": true +} diff --git a/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/output.js b/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/output.js new file mode 100644 index 000000000000..47afcffcfb9e --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/jsx-with-retainLines/output.js @@ -0,0 +1,9 @@ +export default function Component() { + return ( + ); + +} \ No newline at end of file