export * should not export default

This commit is contained in:
Sebastian McKenzie 2015-07-31 01:29:46 +01:00
parent f0aa8fb6eb
commit e95e836d5a
10 changed files with 42 additions and 10 deletions

View File

@ -79,6 +79,7 @@ export default class File {
"bind", "bind",
"define-property", "define-property",
"async-to-generator", "async-to-generator",
"interop-export-wildcard",
"interop-require-wildcard", "interop-require-wildcard",
"interop-require-default", "interop-require-default",
"typeof", "typeof",

View File

@ -297,7 +297,10 @@ export default class DefaultFormatter {
buildExportsWildcard(objectIdentifier) { buildExportsWildcard(objectIdentifier) {
return t.expressionStatement(t.callExpression(this.file.addHelper("defaults"), [ return t.expressionStatement(t.callExpression(this.file.addHelper("defaults"), [
t.identifier("exports"), t.identifier("exports"),
t.callExpression(this.file.addHelper("interop-require-wildcard"), [objectIdentifier]) t.callExpression(this.file.addHelper("interop-export-wildcard"), [
objectIdentifier,
this.file.addHelper("defaults")
])
])); ]));
} }

View File

@ -148,7 +148,10 @@ export default class SystemFormatter extends AMDFormatter {
var right = objectIdentifier; var right = objectIdentifier;
var block = t.blockStatement([ var block = t.blockStatement([
t.expressionStatement(this._buildExportCall(leftIdentifier, valIdentifier)) t.ifStatement(
t.binaryExpression("!==", leftIdentifier, t.literal("default")),
t.expressionStatement(this._buildExportCall(leftIdentifier, valIdentifier))
)
]); ]);
return this._addImportSource(t.forInStatement(left, right, block), node); return this._addImportSource(t.forInStatement(left, right, block), node);

View File

@ -0,0 +1,5 @@
(function (obj, defaults) {
var newObj = defaults({}, obj);
delete newObj.default;
return newObj;
})

View File

@ -0,0 +1,20 @@
import * as t from "../../../types";
export var metadata = {
group: "builtin-pre",
optional: true
};
export var visitor = {
Program() {
var id = this.scope.generateUidIdentifier("null");
this.unshiftContainer("body", [
t.variableDeclaration("var", [
t.variableDeclarator(id, t.literal(null))
]),
t.exportNamedDeclaration(null, [
t.exportSpecifier(id, t.identifier("__proto__"))
])
]);
}
};

View File

@ -4,7 +4,7 @@ define(["exports", "foo"], function (exports, _foo) {
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "__esModule", {
value: true value: true
}); });
babelHelpers.defaults(exports, babelHelpers.interopRequireWildcard(_foo)); babelHelpers.defaults(exports, babelHelpers.interopExportWildcard(_foo, babelHelpers.defaults));
Object.defineProperty(exports, "foo", { Object.defineProperty(exports, "foo", {
enumerable: true, enumerable: true,
get: function get() { get: function get() {

View File

@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
var _foo = require("foo"); var _foo = require("foo");
babelHelpers.defaults(exports, babelHelpers.interopRequireWildcard(_foo)); babelHelpers.defaults(exports, babelHelpers.interopExportWildcard(_foo, babelHelpers.defaults));
Object.defineProperty(exports, "foo", { Object.defineProperty(exports, "foo", {
enumerable: true, enumerable: true,
get: function get() { get: function get() {

View File

@ -4,7 +4,7 @@ System.register(["foo"], function (_export) {
return { return {
setters: [function (_foo) { setters: [function (_foo) {
for (var _key in _foo) { for (var _key in _foo) {
_export(_key, _foo[_key]); if (_key !== "default") _export(_key, _foo[_key]);
} }
_export("foo", _foo.foo); _export("foo", _foo.foo);

View File

@ -16,7 +16,7 @@
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "__esModule", {
value: true value: true
}); });
babelHelpers.defaults(exports, babelHelpers.interopRequireWildcard(_foo)); babelHelpers.defaults(exports, babelHelpers.interopExportWildcard(_foo, babelHelpers.defaults));
Object.defineProperty(exports, "foo", { Object.defineProperty(exports, "foo", {
enumerable: true, enumerable: true,
get: function get() { get: function get() {

View File

@ -7,7 +7,7 @@ System.register(["foo", "bar"], function (_export) {
var _exportObj = {}; var _exportObj = {};
for (var _key in _foo) { for (var _key in _foo) {
_exportObj[_key] = _foo[_key]; if (_key !== "default") _exportObj[_key] = _foo[_key];
} }
_exportObj["foo"] = _foo.foo; _exportObj["foo"] = _foo.foo;