From 3942d72745481e9fc80d53f7c05b3888cd2d66d0 Mon Sep 17 00:00:00 2001 From: overlookmotel Date: Thu, 6 Jan 2022 15:28:28 +0000 Subject: [PATCH] Always print directives with double quotes when minified (#14094) --- packages/babel-generator/src/generators/base.ts | 2 +- packages/babel-generator/test/index.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/babel-generator/src/generators/base.ts b/packages/babel-generator/src/generators/base.ts index be20a4485eb6..30253db2e5f7 100644 --- a/packages/babel-generator/src/generators/base.ts +++ b/packages/babel-generator/src/generators/base.ts @@ -58,7 +58,7 @@ const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/; export function DirectiveLiteral(this: Printer, node: t.DirectiveLiteral) { const raw = this.getPossibleRaw(node); - if (raw != null) { + if (!this.format.minified && raw != null) { this.token(raw); return; } diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index c1bcdfeaae0d..c7cdd19235ba 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -548,6 +548,20 @@ describe("programmatic generation", function () { generate(directive); }).toThrow(); }); + + it("preserves single quotes if not minified", function () { + const directive = parse("'use strict';").program.directives[0]; + const output = generate(directive).code; + + expect(output).toBe("'use strict';"); + }); + + it("converts single quotes to double quotes if minified", function () { + const directive = parse("'use strict';").program.directives[0]; + const output = generate(directive, { minified: true }).code; + + expect(output).toBe('"use strict";'); + }); }); describe("typescript generate parentheses if necessary", function () {