diff --git a/src/babel/transformation/modules/amd.js b/src/babel/transformation/modules/amd.js index 1eed9c457d..99a67b451d 100644 --- a/src/babel/transformation/modules/amd.js +++ b/src/babel/transformation/modules/amd.js @@ -6,8 +6,8 @@ import * as util from "../../util"; import * as t from "../../types"; export default class AMDFormatter extends DefaultFormatter { - init() { - CommonFormatter.prototype._init.call(this, this.hasNonDefaultExports); + setup() { + CommonFormatter.prototype._setup.call(this, this.hasNonDefaultExports); } buildDependencyLiterals() { diff --git a/src/babel/transformation/modules/common.js b/src/babel/transformation/modules/common.js index 20215af7c5..c631268768 100644 --- a/src/babel/transformation/modules/common.js +++ b/src/babel/transformation/modules/common.js @@ -4,11 +4,11 @@ import * as util from "../../util"; import * as t from "../../types"; export default class CommonJSFormatter extends DefaultFormatter { - init() { - this._init(this.hasLocalExports); + setup() { + this._setup(this.hasLocalExports); } - _init(conditional) { + _setup(conditional) { var file = this.file; var scope = file.scope; diff --git a/src/babel/transformation/transformers/internal/modules.js b/src/babel/transformation/transformers/internal/modules.js index 7fa03c8ee0..cb741bdc39 100644 --- a/src/babel/transformation/transformers/internal/modules.js +++ b/src/babel/transformation/transformers/internal/modules.js @@ -85,18 +85,28 @@ export function ExportNamedDeclaration(node, parent, scope) { } } -export function Program(node) { - var imports = []; - var rest = []; +export var Program = { + enter(node) { + var imports = []; + var rest = []; - for (var i = 0; i < node.body.length; i++) { - var bodyNode = node.body[i]; - if (t.isImportDeclaration(bodyNode)) { - imports.push(bodyNode); - } else { - rest.push(bodyNode); + for (var i = 0; i < node.body.length; i++) { + var bodyNode = node.body[i]; + if (t.isImportDeclaration(bodyNode)) { + imports.push(bodyNode); + } else { + rest.push(bodyNode); + } + } + + node.body = imports.concat(rest); + }, + + exit(node, parent, scope, file) { + if (!file.transformers["es6.modules"].canTransform()) return; + + if (file.moduleFormatter.setup) { + file.moduleFormatter.setup(); } } - - node.body = imports.concat(rest); -} +}; diff --git a/test/core/fixtures/transformation/es6.modules-common/module-shadow/actual.js b/test/core/fixtures/transformation/es6.modules-common/module-shadow/actual.js new file mode 100644 index 0000000000..8ee185c87d --- /dev/null +++ b/test/core/fixtures/transformation/es6.modules-common/module-shadow/actual.js @@ -0,0 +1,3 @@ +export function module() { + +} diff --git a/test/core/fixtures/transformation/es6.modules-common/module-shadow/expected.js b/test/core/fixtures/transformation/es6.modules-common/module-shadow/expected.js new file mode 100644 index 0000000000..f6a92cc04b --- /dev/null +++ b/test/core/fixtures/transformation/es6.modules-common/module-shadow/expected.js @@ -0,0 +1,8 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.module = _module; + +function _module() {}