diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-array-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-array-literal/actual.js new file mode 100644 index 0000000000..d6d1738de6 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-array-literal/actual.js @@ -0,0 +1 @@ +export default []; diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-array-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-array-literal/expected.js new file mode 100644 index 0000000000..0eb559ca60 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-array-literal/expected.js @@ -0,0 +1,8 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = []; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-class/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-class/actual.js new file mode 100644 index 0000000000..a6e68e9838 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-class/actual.js @@ -0,0 +1 @@ +export default class {} diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-class/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-class/expected.js new file mode 100644 index 0000000000..3e29cba5e0 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-class/expected.js @@ -0,0 +1,8 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = class {}; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-func/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-func/actual.js new file mode 100644 index 0000000000..ea9b101e1c --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-func/actual.js @@ -0,0 +1 @@ +export default function () {} diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-func/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-func/expected.js new file mode 100644 index 0000000000..0975d81147 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-func/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/amd/export-default-iife/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-iife/actual.js new file mode 100644 index 0000000000..f0fe347f9e --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-iife/actual.js @@ -0,0 +1 @@ +export default (function(){return "foo"})(); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-iife/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-iife/expected.js new file mode 100644 index 0000000000..3f4ebdc60f --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-iife/expected.js @@ -0,0 +1,11 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + exports.default = function () { + return "foo"; + }(); +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-class/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-class/actual.js new file mode 100644 index 0000000000..7804111002 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-class/actual.js @@ -0,0 +1 @@ +export default class Foo {} diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-class/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-class/expected.js new file mode 100644 index 0000000000..875ad7b218 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-class/expected.js @@ -0,0 +1,9 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + class Foo {} + exports.default = Foo; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-func/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-func/actual.js new file mode 100644 index 0000000000..4389e1a496 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-func/actual.js @@ -0,0 +1 @@ +export default function foo () {} diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-func/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-func/expected.js new file mode 100644 index 0000000000..ba97aa2f80 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-named-func/expected.js @@ -0,0 +1,9 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = foo; + function foo() {} +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-num-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-num-literal/actual.js new file mode 100644 index 0000000000..7a4e8a723a --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-num-literal/actual.js @@ -0,0 +1 @@ +export default 42; diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-num-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-num-literal/expected.js new file mode 100644 index 0000000000..e8a2af62f4 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-num-literal/expected.js @@ -0,0 +1,8 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = 42; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-obj-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-obj-literal/actual.js new file mode 100644 index 0000000000..ff8b4c5632 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-obj-literal/actual.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-obj-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-obj-literal/expected.js new file mode 100644 index 0000000000..fc05c36dd8 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-obj-literal/expected.js @@ -0,0 +1,8 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = {}; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-specifier-default/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-specifier/actual.js similarity index 100% rename from packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-specifier-default/actual.js rename to packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-specifier/actual.js diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-specifier-default/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-specifier/expected.js similarity index 100% rename from packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-specifier-default/expected.js rename to packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-specifier/expected.js diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-var/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-var/actual.js new file mode 100644 index 0000000000..f7b318b3f6 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-var/actual.js @@ -0,0 +1 @@ +export default foo; diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-var/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-var/expected.js new file mode 100644 index 0000000000..dbe6496d73 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/export-default-var/expected.js @@ -0,0 +1,8 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = foo; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default-non-function/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default-non-function/actual.js new file mode 100644 index 0000000000..44bb8e1880 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default-non-function/actual.js @@ -0,0 +1,3 @@ +export default new Cachier() + +export function Cachier(databaseName) {} diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default-non-function/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default-non-function/expected.js new file mode 100644 index 0000000000..2460da2b0f --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default-non-function/expected.js @@ -0,0 +1,10 @@ +define(["exports"], function (exports) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.Cachier = Cachier; + exports.default = new Cachier(); + function Cachier(databaseName) {} +}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default/actual.js deleted file mode 100644 index 4f72a5006a..0000000000 --- a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default/actual.js +++ /dev/null @@ -1,10 +0,0 @@ -export default 42; -export default {}; -export default []; -export default foo; -export default function () {} -export default class {} -export default function foo () {} -export default class Foo {} -export { foo as default }; -export default (function(){return "foo"})(); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default/expected.js deleted file mode 100644 index bba4a3cfbe..0000000000 --- a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default/expected.js +++ /dev/null @@ -1,24 +0,0 @@ -define(["exports"], function (exports) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - exports.default = function () {}; - - exports.default = foo; - exports.default = 42; - exports.default = {}; - exports.default = []; - exports.default = foo; - exports.default = class {}; - function foo() {} - class Foo {} - exports.default = Foo; - exports.default = foo; - - exports.default = function () { - return "foo"; - }(); -}); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default/untitled b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/exports-default/untitled deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/illegal-multiple-exports-default/actual.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/illegal-multiple-exports-default/actual.js new file mode 100644 index 0000000000..73e17f0529 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/illegal-multiple-exports-default/actual.js @@ -0,0 +1,2 @@ +export default class A {} +export default class B {} diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/illegal-multiple-exports-default/options.json b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/illegal-multiple-exports-default/options.json new file mode 100644 index 0000000000..0d5b0a5ff5 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/illegal-multiple-exports-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Only one default export allowed per module." +} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js index 6ee1caf84f..9554fa57d6 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -170,6 +170,8 @@ export default function () { let requires = Object.create(null); + let exportDefaultFound = false; + function addRequire(source, blockHoist) { let cached = requires[source]; if (cached) return cached; @@ -238,6 +240,10 @@ export default function () { path.remove(); } else if (path.isExportDefaultDeclaration()) { + if (exportDefaultFound) { + throw path.buildCodeFrameError("Only one default export allowed per module."); + } + let declaration = path.get("declaration"); if (declaration.isFunctionDeclaration()) { let id = declaration.node.id; @@ -270,6 +276,7 @@ export default function () { // replaceWith above. See T7166 for more info. path.parentPath.requeue(path.get("expression.left")); } + exportDefaultFound = true; } else if (path.isExportNamedDeclaration()) { let declaration = path.get("declaration"); if (declaration.node) { diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-array-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-array-literal/actual.js new file mode 100644 index 0000000000..d6d1738de6 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-array-literal/actual.js @@ -0,0 +1 @@ +export default []; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-array-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-array-literal/expected.js new file mode 100644 index 0000000000..4592507bf0 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-array-literal/expected.js @@ -0,0 +1,6 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = []; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-class/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-class/actual.js new file mode 100644 index 0000000000..a6e68e9838 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-class/actual.js @@ -0,0 +1 @@ +export default class {} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-class/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-class/expected.js new file mode 100644 index 0000000000..efed824742 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-class/expected.js @@ -0,0 +1,6 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = class {}; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-func/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-func/actual.js new file mode 100644 index 0000000000..ea9b101e1c --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-func/actual.js @@ -0,0 +1 @@ +export default function () {} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-func/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-func/expected.js new file mode 100644 index 0000000000..b50a019b99 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-func/expected.js @@ -0,0 +1,7 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function () {}; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-iife/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-iife/actual.js new file mode 100644 index 0000000000..f0fe347f9e --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-iife/actual.js @@ -0,0 +1 @@ +export default (function(){return "foo"})(); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-iife/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-iife/expected.js new file mode 100644 index 0000000000..e5fc96fa9d --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-iife/expected.js @@ -0,0 +1,9 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function () { + return "foo"; +}(); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-class/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-class/actual.js new file mode 100644 index 0000000000..7804111002 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-class/actual.js @@ -0,0 +1 @@ +export default class Foo {} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-class/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-class/expected.js new file mode 100644 index 0000000000..6a80474157 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-class/expected.js @@ -0,0 +1,7 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +class Foo {} +exports.default = Foo; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-func/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-func/actual.js new file mode 100644 index 0000000000..4389e1a496 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-func/actual.js @@ -0,0 +1 @@ +export default function foo () {} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-func/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-func/expected.js new file mode 100644 index 0000000000..c3dcd1a1bb --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-named-func/expected.js @@ -0,0 +1,7 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = foo; +function foo() {} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-num-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-num-literal/actual.js new file mode 100644 index 0000000000..7a4e8a723a --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-num-literal/actual.js @@ -0,0 +1 @@ +export default 42; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-num-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-num-literal/expected.js new file mode 100644 index 0000000000..8fcd2eab10 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-num-literal/expected.js @@ -0,0 +1,6 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = 42; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-obj-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-obj-literal/actual.js new file mode 100644 index 0000000000..ff8b4c5632 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-obj-literal/actual.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-obj-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-obj-literal/expected.js new file mode 100644 index 0000000000..2e3913b6f2 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-obj-literal/expected.js @@ -0,0 +1,6 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = {}; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-specifier/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-specifier/actual.js new file mode 100644 index 0000000000..38f48e5187 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-specifier/actual.js @@ -0,0 +1,2 @@ +var a = 1; +export { a as default }; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-specifier/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-specifier/expected.js new file mode 100644 index 0000000000..4e7b7f4eae --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-specifier/expected.js @@ -0,0 +1,7 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var a = 1; +exports.default = a; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-var/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-var/actual.js new file mode 100644 index 0000000000..f7b318b3f6 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-var/actual.js @@ -0,0 +1 @@ +export default foo; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-var/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-var/expected.js new file mode 100644 index 0000000000..e0fbdd6b61 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-default-var/expected.js @@ -0,0 +1,6 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = foo; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/exports-default/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/exports-default/actual.js deleted file mode 100644 index 4f72a5006a..0000000000 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/exports-default/actual.js +++ /dev/null @@ -1,10 +0,0 @@ -export default 42; -export default {}; -export default []; -export default foo; -export default function () {} -export default class {} -export default function foo () {} -export default class Foo {} -export { foo as default }; -export default (function(){return "foo"})(); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/exports-default/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/exports-default/expected.js deleted file mode 100644 index 970f546e3f..0000000000 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/exports-default/expected.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function () {}; - -exports.default = foo; -exports.default = 42; -exports.default = {}; -exports.default = []; -exports.default = foo; -exports.default = class {}; -function foo() {} -class Foo {} -exports.default = Foo; -exports.default = foo; - -exports.default = function () { - return "foo"; -}(); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/illegal-multiple-exports-default/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/illegal-multiple-exports-default/actual.js new file mode 100644 index 0000000000..73e17f0529 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/illegal-multiple-exports-default/actual.js @@ -0,0 +1,2 @@ +export default class A {} +export default class B {} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/illegal-multiple-exports-default/options.json b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/illegal-multiple-exports-default/options.json new file mode 100644 index 0000000000..0d5b0a5ff5 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/illegal-multiple-exports-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Only one default export allowed per module." +} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-array-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-array-literal/actual.js new file mode 100644 index 0000000000..d6d1738de6 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-array-literal/actual.js @@ -0,0 +1 @@ +export default []; diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-array-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-array-literal/expected.js new file mode 100644 index 0000000000..53ed775462 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-array-literal/expected.js @@ -0,0 +1,20 @@ +(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 = []; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-class/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-class/actual.js new file mode 100644 index 0000000000..a6e68e9838 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-class/actual.js @@ -0,0 +1 @@ +export default class {} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-class/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-class/expected.js new file mode 100644 index 0000000000..f2522d81dc --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-class/expected.js @@ -0,0 +1,20 @@ +(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 = class {}; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-func/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-func/actual.js new file mode 100644 index 0000000000..ea9b101e1c --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-func/actual.js @@ -0,0 +1 @@ +export default function () {} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-func/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-func/expected.js new file mode 100644 index 0000000000..3522887e40 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-func/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 () {}; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-iife/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-iife/actual.js new file mode 100644 index 0000000000..f0fe347f9e --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-iife/actual.js @@ -0,0 +1 @@ +export default (function(){return "foo"})(); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-iife/expected.js similarity index 63% rename from packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default/expected.js rename to packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-iife/expected.js index 0f85d5e0f4..4fef803abd 100644 --- a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-iife/expected.js @@ -17,19 +17,6 @@ value: true }); - exports.default = function () {}; - - exports.default = foo; - exports.default = 42; - exports.default = {}; - exports.default = []; - exports.default = foo; - exports.default = class {}; - function foo() {} - class Foo {} - exports.default = Foo; - exports.default = foo; - exports.default = function () { return "foo"; }(); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-class/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-class/actual.js new file mode 100644 index 0000000000..7804111002 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-class/actual.js @@ -0,0 +1 @@ +export default class Foo {} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-class/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-class/expected.js new file mode 100644 index 0000000000..5fe4e02b4e --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-class/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 + }); + class Foo {} + exports.default = Foo; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-func/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-func/actual.js new file mode 100644 index 0000000000..4389e1a496 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-func/actual.js @@ -0,0 +1 @@ +export default function foo () {} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-func/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-func/expected.js new file mode 100644 index 0000000000..ceac218250 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-named-func/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 = foo; + function foo() {} +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-num-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-num-literal/actual.js new file mode 100644 index 0000000000..7a4e8a723a --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-num-literal/actual.js @@ -0,0 +1 @@ +export default 42; diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-num-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-num-literal/expected.js new file mode 100644 index 0000000000..fec6004dc4 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-num-literal/expected.js @@ -0,0 +1,20 @@ +(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 = 42; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-obj-literal/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-obj-literal/actual.js new file mode 100644 index 0000000000..ff8b4c5632 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-obj-literal/actual.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-obj-literal/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-obj-literal/expected.js new file mode 100644 index 0000000000..42013b6793 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-obj-literal/expected.js @@ -0,0 +1,20 @@ +(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 = {}; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-specifier/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-specifier/actual.js new file mode 100644 index 0000000000..38f48e5187 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-specifier/actual.js @@ -0,0 +1,2 @@ +var a = 1; +export { a as default }; diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-specifier/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-specifier/expected.js new file mode 100644 index 0000000000..f545dbf6b1 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-specifier/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 + }); + var a = 1; + exports.default = a; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-var/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-var/actual.js new file mode 100644 index 0000000000..f7b318b3f6 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-var/actual.js @@ -0,0 +1 @@ +export default foo; diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-var/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-var/expected.js new file mode 100644 index 0000000000..d17a663631 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/export-default-var/expected.js @@ -0,0 +1,20 @@ +(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 = foo; +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default-non-function/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default-non-function/actual.js new file mode 100644 index 0000000000..44bb8e1880 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default-non-function/actual.js @@ -0,0 +1,3 @@ +export default new Cachier() + +export function Cachier(databaseName) {} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default-non-function/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default-non-function/expected.js new file mode 100644 index 0000000000..794f26c169 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default-non-function/expected.js @@ -0,0 +1,22 @@ +(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.Cachier = Cachier; + exports.default = new Cachier(); + function Cachier(databaseName) {} +}); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default/actual.js deleted file mode 100644 index 4f72a5006a..0000000000 --- a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/exports-default/actual.js +++ /dev/null @@ -1,10 +0,0 @@ -export default 42; -export default {}; -export default []; -export default foo; -export default function () {} -export default class {} -export default function foo () {} -export default class Foo {} -export { foo as default }; -export default (function(){return "foo"})(); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/illegal-multiple-exports-default/actual.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/illegal-multiple-exports-default/actual.js new file mode 100644 index 0000000000..73e17f0529 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/illegal-multiple-exports-default/actual.js @@ -0,0 +1,2 @@ +export default class A {} +export default class B {} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/illegal-multiple-exports-default/options.json b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/illegal-multiple-exports-default/options.json new file mode 100644 index 0000000000..0d5b0a5ff5 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/illegal-multiple-exports-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Only one default export allowed per module." +}