From 5565e1b4062756f02e59d478b4752489992df3a0 Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Sun, 10 Sep 2017 02:33:35 +0200 Subject: [PATCH] Correctly requeue CallExpression in AMD transform (#5497) * Correctly requeue the define()-CallExpression * Use pushContainer --- .../src/index.js | 6 ++++-- .../test/fixtures/regression/4192/actual.js | 1 + .../test/fixtures/regression/4192/expected.js | 9 ++++++++ .../fixtures/regression/4192/options.json | 7 +++++++ .../test/fixtures/regression/4192/actual.js | 1 + .../test/fixtures/regression/4192/expected.js | 21 +++++++++++++++++++ .../fixtures/regression/4192/options.json | 7 +++++++ 7 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/actual.js create mode 100644 packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/expected.js create mode 100644 packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/options.json create mode 100644 packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/actual.js create mode 100644 packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/expected.js create mode 100644 packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/options.json diff --git a/packages/babel-plugin-transform-es2015-modules-amd/src/index.js b/packages/babel-plugin-transform-es2015-modules-amd/src/index.js index aaf1773048..a6a58ec390 100644 --- a/packages/babel-plugin-transform-es2015-modules-amd/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-amd/src/index.js @@ -128,13 +128,15 @@ export default function({ types: t }) { factory.expression.body.directives = node.directives; node.directives = []; - node.body = [ + node.body = []; + + path.pushContainer("body", [ buildDefine({ MODULE_NAME: moduleName, SOURCES: sources, FACTORY: factory, }), - ]; + ]); }, }, }, diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/actual.js new file mode 100644 index 0000000000..ea9b101e1c --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/actual.js @@ -0,0 +1 @@ +export default function () {} diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/expected.js new file mode 100644 index 0000000000..dd662419eb --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/expected.js @@ -0,0 +1,9 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + exports["default"] = function () {}; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/options.json b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/options.json new file mode 100644 index 0000000000..5fa9737651 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/regression/4192/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + "external-helpers", + "transform-es2015-modules-amd", + "transform-es3-member-expression-literals" + ] +} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/actual.js new file mode 100644 index 0000000000..ea9b101e1c --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/actual.js @@ -0,0 +1 @@ +export default function () {} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/expected.js new file mode 100644 index 0000000000..c7ae2e346b --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/expected.js @@ -0,0 +1,21 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define(["exports"], factory); + } else if (typeof exports !== "undefined") { + factory(exports); + } else { + var mod = { + exports: {} + }; + factory(mod.exports); + global.actual = mod.exports; + } +})(this, function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + exports["default"] = function () {}; +}); \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/options.json b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/options.json new file mode 100644 index 0000000000..540e8e1b3e --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/regression/4192/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + "external-helpers", + "transform-es2015-modules-umd", + "transform-es3-member-expression-literals" + ] +}