From d8d35ac0c4ff194d777f046808347ccec4dae007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sat, 30 Sep 2017 23:30:44 +0200 Subject: [PATCH] Annotating taggedTemplateLiteral calls as #__PURE__ (#6327) --- .../fixtures/interop/imports-hoisting/expected.js | 2 +- .../package.json | 1 + .../src/index.js | 3 +++ .../test/fixtures/default/tag/expected.js | 6 +++--- .../fixtures/default/template-revision/expected.js | 14 +++++++------- .../test/fixtures/loose/tag/expected.js | 6 +++--- .../fixtures/loose/template-revision/expected.js | 14 +++++++------- 7 files changed, 25 insertions(+), 21 deletions(-) diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/imports-hoisting/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/imports-hoisting/expected.js index 03d6a86460..1c74a7f257 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/imports-hoisting/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/imports-hoisting/expected.js @@ -1,5 +1,5 @@ var _taggedTemplateLiteral = require("babel-runtime/helpers/taggedTemplateLiteral"); -var _templateObject = _taggedTemplateLiteral(["foo"], ["foo"]); +var _templateObject = /*#__PURE__*/ _taggedTemplateLiteral(["foo"], ["foo"]); tag(_templateObject); diff --git a/packages/babel-plugin-transform-es2015-template-literals/package.json b/packages/babel-plugin-transform-es2015-template-literals/package.json index bb4ba432b3..e01157aa47 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/package.json +++ b/packages/babel-plugin-transform-es2015-template-literals/package.json @@ -9,6 +9,7 @@ "babel-plugin" ], "devDependencies": { + "babel-helper-annotate-as-pure": "7.0.0-beta.2", "babel-helper-plugin-test-runner": "7.0.0-beta.2" } } diff --git a/packages/babel-plugin-transform-es2015-template-literals/src/index.js b/packages/babel-plugin-transform-es2015-template-literals/src/index.js index 7dfa42fde5..1380f0b3ca 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/src/index.js +++ b/packages/babel-plugin-transform-es2015-template-literals/src/index.js @@ -1,3 +1,5 @@ +import annotateAsPure from "babel-helper-annotate-as-pure"; + export default function({ types: t }) { /** * This function groups the objects into multiple calls to `.concat()` in @@ -80,6 +82,7 @@ export default function({ types: t }) { t.arrayExpression(strings), t.arrayExpression(raws), ]); + annotateAsPure(init); init._compact = true; programPath.scope.push({ id: templateObject, diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/expected.js index 5615639572..6a3d89a3c4 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/expected.js +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/expected.js @@ -1,6 +1,6 @@ -var _templateObject = _taggedTemplateLiteral(["wow\na", "b ", ""], ["wow\\na", "b ", ""]), - _templateObject2 = _taggedTemplateLiteral(["wow\nab", " ", ""], ["wow\\nab", " ", ""]), - _templateObject3 = _taggedTemplateLiteral(["wow\naB", " ", ""], ["wow\\naB", " ", ""]); +var _templateObject = /*#__PURE__*/ _taggedTemplateLiteral(["wow\na", "b ", ""], ["wow\\na", "b ", ""]), + _templateObject2 = /*#__PURE__*/ _taggedTemplateLiteral(["wow\nab", " ", ""], ["wow\\nab", " ", ""]), + _templateObject3 = /*#__PURE__*/ _taggedTemplateLiteral(["wow\naB", " ", ""], ["wow\\naB", " ", ""]); function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/template-revision/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/template-revision/expected.js index 8803ddc742..c7f4371d6e 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/template-revision/expected.js +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/template-revision/expected.js @@ -1,10 +1,10 @@ -var _templateObject = _taggedTemplateLiteral([void 0], ["\\unicode and \\u{55}"]), - _templateObject2 = _taggedTemplateLiteral([void 0], ["\\01"]), - _templateObject3 = _taggedTemplateLiteral([void 0, "right"], ["\\xg", "right"]), - _templateObject4 = _taggedTemplateLiteral(["left", void 0], ["left", "\\xg"]), - _templateObject5 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\xg", "right"]), - _templateObject6 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\u000g", "right"]), - _templateObject7 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\u{-0}", "right"]); +var _templateObject = /*#__PURE__*/ _taggedTemplateLiteral([void 0], ["\\unicode and \\u{55}"]), + _templateObject2 = /*#__PURE__*/ _taggedTemplateLiteral([void 0], ["\\01"]), + _templateObject3 = /*#__PURE__*/ _taggedTemplateLiteral([void 0, "right"], ["\\xg", "right"]), + _templateObject4 = /*#__PURE__*/ _taggedTemplateLiteral(["left", void 0], ["left", "\\xg"]), + _templateObject5 = /*#__PURE__*/ _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\xg", "right"]), + _templateObject6 = /*#__PURE__*/ _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\u000g", "right"]), + _templateObject7 = /*#__PURE__*/ _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\u{-0}", "right"]); function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/expected.js index d8563b0301..09b108b3b1 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/expected.js +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/expected.js @@ -1,6 +1,6 @@ -var _templateObject = _taggedTemplateLiteralLoose(["wow\na", "b ", ""], ["wow\\na", "b ", ""]), - _templateObject2 = _taggedTemplateLiteralLoose(["wow\nab", " ", ""], ["wow\\nab", " ", ""]), - _templateObject3 = _taggedTemplateLiteralLoose(["wow\naB", " ", ""], ["wow\\naB", " ", ""]); +var _templateObject = /*#__PURE__*/ _taggedTemplateLiteralLoose(["wow\na", "b ", ""], ["wow\\na", "b ", ""]), + _templateObject2 = /*#__PURE__*/ _taggedTemplateLiteralLoose(["wow\nab", " ", ""], ["wow\\nab", " ", ""]), + _templateObject3 = /*#__PURE__*/ _taggedTemplateLiteralLoose(["wow\naB", " ", ""], ["wow\\naB", " ", ""]); function _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; } diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/template-revision/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/template-revision/expected.js index b14a3b4679..3077a8c82f 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/template-revision/expected.js +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/template-revision/expected.js @@ -1,10 +1,10 @@ -var _templateObject = _taggedTemplateLiteralLoose([void 0], ["\\unicode and \\u{55}"]), - _templateObject2 = _taggedTemplateLiteralLoose([void 0], ["\\01"]), - _templateObject3 = _taggedTemplateLiteralLoose([void 0, "right"], ["\\xg", "right"]), - _templateObject4 = _taggedTemplateLiteralLoose(["left", void 0], ["left", "\\xg"]), - _templateObject5 = _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\xg", "right"]), - _templateObject6 = _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\u000g", "right"]), - _templateObject7 = _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\u{-0}", "right"]); +var _templateObject = /*#__PURE__*/ _taggedTemplateLiteralLoose([void 0], ["\\unicode and \\u{55}"]), + _templateObject2 = /*#__PURE__*/ _taggedTemplateLiteralLoose([void 0], ["\\01"]), + _templateObject3 = /*#__PURE__*/ _taggedTemplateLiteralLoose([void 0, "right"], ["\\xg", "right"]), + _templateObject4 = /*#__PURE__*/ _taggedTemplateLiteralLoose(["left", void 0], ["left", "\\xg"]), + _templateObject5 = /*#__PURE__*/ _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\xg", "right"]), + _templateObject6 = /*#__PURE__*/ _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\u000g", "right"]), + _templateObject7 = /*#__PURE__*/ _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\u{-0}", "right"]); function _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }