Throw error for multiple exports default (#3518)

Fixes https://phabricator.babeljs.io/T7242
This commit is contained in:
Kai Cataldo
2016-08-16 13:21:00 -04:00
committed by Henry Zhu
parent 308de41992
commit aa51dd4a3d
77 changed files with 420 additions and 89 deletions

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = [];

View File

@@ -0,0 +1 @@
export default class {}

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = class {};

View File

@@ -0,0 +1 @@
export default function () {}

View File

@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {};

View File

@@ -0,0 +1 @@
export default (function(){return "foo"})();

View File

@@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
return "foo";
}();

View File

@@ -0,0 +1 @@
export default class Foo {}

View File

@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
class Foo {}
exports.default = Foo;

View File

@@ -0,0 +1 @@
export default function foo () {}

View File

@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = foo;
function foo() {}

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = 42;

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = {};

View File

@@ -0,0 +1,2 @@
var a = 1;
export { a as default };

View File

@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var a = 1;
exports.default = a;

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = foo;

View File

@@ -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"})();

View File

@@ -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";
}();

View File

@@ -0,0 +1,2 @@
export default class A {}
export default class B {}

View File

@@ -0,0 +1,3 @@
{
"throws": "Only one default export allowed per module."
}