diff --git a/lib/6to5/templates/exports-assign-key.js b/lib/6to5/templates/exports-assign-key.js deleted file mode 100644 index 4a101bbbdc..0000000000 --- a/lib/6to5/templates/exports-assign-key.js +++ /dev/null @@ -1 +0,0 @@ -exports.VARIABLE_NAME = OBJECT.KEY; diff --git a/lib/6to5/templates/exports-default.js b/lib/6to5/templates/exports-default.js deleted file mode 100644 index a34c07f7dc..0000000000 --- a/lib/6to5/templates/exports-default.js +++ /dev/null @@ -1 +0,0 @@ -exports.default = VALUE; diff --git a/lib/6to5/templates/system.js b/lib/6to5/templates/system.js index 267c8dad4e..00eb18aca5 100644 --- a/lib/6to5/templates/system.js +++ b/lib/6to5/templates/system.js @@ -1 +1,6 @@ -System.register(MODULE_NAME, MODULE_DEPENDENCIES, MODULE_BODY); +System.register(MODULE_NAME, MODULE_DEPENDENCIES, function (EXPORT_IDENTIFIER) { + return { + setters: SETTERS, + execute: EXECUTE + }; +}); diff --git a/lib/6to5/transformation/modules/_default.js b/lib/6to5/transformation/modules/_default.js index 1f4ab6a32c..e98efcb641 100644 --- a/lib/6to5/transformation/modules/_default.js +++ b/lib/6to5/transformation/modules/_default.js @@ -5,11 +5,11 @@ var util = require("../../util"); var t = require("../../types"); var _ = require("lodash"); -function DefaultFormatter(file, illegalRemapping) { +function DefaultFormatter(file) { this.file = file; this.localExports = this.getLocalExports(); - this.remapAssignments(illegalRemapping); + this.remapAssignments(); } DefaultFormatter.prototype.getLocalExports = function () { @@ -27,20 +27,21 @@ DefaultFormatter.prototype.getLocalExports = function () { return localExports; }; -DefaultFormatter.prototype.remapAssignments = function (illegal) { - var localExports = this.localExports; +DefaultFormatter.prototype.remapExportAssignment = function (node) { + return t.assignmentExpression( + "=", + node.left, + t.assignmentExpression( + node.operator, + t.memberExpression(t.identifier("exports"), node.left), + node.right + ) + ); +}; - var remap = function (node) { - return t.assignmentExpression( - "=", - node.left, - t.assignmentExpression( - node.operator, - t.memberExpression(t.identifier("exports"), node.left), - node.right - ) - ); - }; +DefaultFormatter.prototype.remapAssignments = function () { + var localExports = this.localExports; + var self = this; var throwIllegal = function (node) { // todo!! @@ -56,14 +57,8 @@ DefaultFormatter.prototype.remapAssignments = function (illegal) { enter: function (node, parent, scope) { if (t.isExportDeclaration(node)) return false; - if (t.isAssignmentExpression(node)) { - if (isLocalReference(node, scope)) { - if (illegal) { - throwIllegal(node); - } else { - return remap(node); - } - } + if (t.isAssignmentExpression(node) && isLocalReference(node, scope)) { + return self.remapExportAssignment(node); } } }); @@ -124,33 +119,40 @@ DefaultFormatter.prototype._exportSpecifier = function (getRef, specifier, node, if (node.source) { if (t.isExportBatchSpecifier(specifier)) { // export * from "foo"; - nodes.push(util.template("exports-wildcard", { - OBJECT: getRef() - }, true)); + nodes.push(this._exportsWildcard(getRef())); } else { // export { foo } from "test"; - nodes.push(util.template("exports-assign-key", { - VARIABLE_NAME: variableName, - OBJECT: getRef(), - KEY: specifier.id - }, true)); + nodes.push(this._exportsAssign( + t.getSpecifierName(specifier), + t.memberExpression(getRef(), specifier.id) + )); } } else { // export { foo }; - nodes.push(util.template("exports-assign", { - VALUE: specifier.id, - KEY: variableName - }, true)); + nodes.push(this._exportsAssign(t.getSpecifierName(specifier), specifier.id)); } }; +DefaultFormatter.prototype._exportsWildcard = function (objectIdentifier) { + return util.template("exports-wildcard", { + OBJECT: objectIdentifier + }, true); +}; + +DefaultFormatter.prototype._exportsAssign = function (id, init) { + return util.template("exports-assign", { + VALUE: init, + KEY: id + }, true); +}; + DefaultFormatter.prototype.exportDeclaration = function (node, nodes) { var declar = node.declaration; if (node.default) { - nodes.push(util.template("exports-default", { - VALUE: this._pushStatement(declar, nodes) - }, true)); + nodes.push( + this._exportsAssign(t.identifier("default"), this._pushStatement(declar, nodes)) + ); } else { var assign; @@ -158,20 +160,14 @@ DefaultFormatter.prototype.exportDeclaration = function (node, nodes) { for (var i in declar.declarations) { var decl = declar.declarations[i]; - decl.init = util.template("exports-assign", { - VALUE: decl.init, - KEY: decl.id - }); + decl.init = this._exportsAssign(decl.id, decl.init).expression; var newDeclar = t.variableDeclaration(declar.kind, [decl]); if (i == 0) t.inherits(newDeclar, declar); nodes.push(newDeclar); } } else { - assign = util.template("exports-assign", { - VALUE: declar.id, - KEY: declar.id - }, true); + assign = this._exportsAssign(declar.id, declar.id); nodes.push(t.toStatement(declar)); nodes.push(assign); diff --git a/lib/6to5/transformation/modules/amd.js b/lib/6to5/transformation/modules/amd.js index 2aad3b9a12..226bdfc937 100644 --- a/lib/6to5/transformation/modules/amd.js +++ b/lib/6to5/transformation/modules/amd.js @@ -12,6 +12,14 @@ function AMDFormatter(file) { util.inherits(AMDFormatter, DefaultFormatter); +AMDFormatter.prototype.buildDependencyLiterals = function () { + var names = []; + for (var name in this.ids) { + names.push(t.literal(name)); + } + return names; +}; + /** * Wrap the entire body in a `define` wrapper. */ @@ -22,10 +30,7 @@ AMDFormatter.prototype.transform = function (ast) { // build an array of module names - var names = [t.literal("exports")]; - for (var name in this.ids) { - names.push(t.literal(name)); - } + var names = [t.literal("exports")].concat(this.buildDependencyLiterals()); names = t.arrayExpression(names); // build up define container diff --git a/lib/6to5/transformation/modules/system.js b/lib/6to5/transformation/modules/system.js index 5e035d3c3f..020f2e69b4 100644 --- a/lib/6to5/transformation/modules/system.js +++ b/lib/6to5/transformation/modules/system.js @@ -1,6 +1,7 @@ module.exports = SystemFormatter; var DefaultFormatter = require("./_default"); +var AMDFormatter = require("./amd"); var traverse = require("../../traverse"); var util = require("../../util"); var t = require("../../types"); @@ -11,235 +12,17 @@ var PRIVATE_MODULE_NAME_IDENTIFIER = t.identifier("__moduleName"); var NULL_SETTER = t.literal(null); function SystemFormatter(file) { - DefaultFormatter.call(this, file, true); + AMDFormatter.apply(this, arguments); - this.exportedStatements = []; - this.moduleDependencies = {}; - this.importedVariables = {}; - this.moduleNameLiteral = t.literal(this.getModuleName()); - this.exportIdentifier = file.generateUidIdentifier("export"); + this.moduleNameLiteral = t.literal(this.getModuleName()); + this.exportIdentifier = file.generateUidIdentifier("export"); } -util.inherits(SystemFormatter, DefaultFormatter); +util.inherits(SystemFormatter, AMDFormatter); -SystemFormatter.prototype.importDeclaration = -SystemFormatter.prototype.exportDeclaration = function (node, nodes) { - nodes.push(node); -}; +SystemFormatter.prototype.getModuleName = DefaultFormatter.prototype.getModuleName; -SystemFormatter.prototype.importSpecifier = -SystemFormatter.prototype.exportSpecifier = function (specifier, node, nodes) { - if (!nodes.length) nodes.push(node); -}; - -SystemFormatter.prototype._makeExportStatements = function (args) { - return t.expressionStatement(t.callExpression(this.exportIdentifier, args)); -}; - -SystemFormatter.prototype.transform = function (ast) { - var self = this; - - // Post extraction of the import/export declaration - traverse(ast, { - enter: function (node) { - var replacementNode = null; - - /** - * Process the current node with an extractor. - * - * @param {Function} extractor Extract the node data - * @returns {*} Can be a `node` (for replacement), undefined (for removing) or false. - */ - - function processTheNode(extractor) { - var result = extractor.call(self, node); - result = (result === undefined) ? [] : result; - replacementNode = result || replacementNode; - return !!replacementNode; - } - - _.some([ - // Import - SystemFormatter.prototype._extractImportSpecifiers, - SystemFormatter.prototype._extractImport, - - // Export - SystemFormatter.prototype._extractExportDefault, - SystemFormatter.prototype._extractExportVariableDeclaration, - SystemFormatter.prototype._extractExportFunctionDeclaration, - SystemFormatter.prototype._extractExportSpecifiers - ], processTheNode); - - return replacementNode; - } - }); - - // Other - this._prependImportVariables(ast); - this._prependPrivateModuleName(ast); - this._appendModuleReturnStatement(ast); - this._wrapInSystemRegisterCallExpression(ast); -}; - -// Import extraction - -SystemFormatter.prototype._extractImportSpecifiers = function (node) { - var self = this; - - if (!(t.isImportDeclaration(node) && node.specifiers && node.specifiers.length)) { - return false; - } - - _.each(node.specifiers, function (specifier) { - var variableName = t.getSpecifierName(specifier); - - var right = SETTER_MODULE_NAMESPACE; - if (!t.isImportBatchSpecifier(specifier)) { - right = t.memberExpression(right, specifier.id); - } - self.importedVariables[variableName.name] = true; - self._addImportStatement(node.source.value, t.expressionStatement( - t.assignmentExpression("=", variableName, right) - )); - - }); -}; - -SystemFormatter.prototype._extractImport = function (node) { - if (!t.isImportDeclaration(node)) { - return false; - } - - this._addImportStatement(node.source.value); -}; - -// Export extraction - -SystemFormatter.prototype._extractExportDefault = function (node) { - if (!(t.isExportDeclaration(node) && node.default)) { - return false; - } - - var declar = node.declaration; - var returnNode; - - if (t.isFunction(declar)) { - if (!declar.id) { - declar.id = this.file.generateUidIdentifier("anonymous"); - } - returnNode = t.toStatement(declar); - declar = declar.id; - } - - this._addToExportStatements("default", declar); - - return returnNode; -}; - -SystemFormatter.prototype._extractExportVariableDeclaration = function (node) { - var self = this; - var declar = node.declaration; - - if (!(t.isExportDeclaration(node) && t.isVariableDeclaration(declar))) { - return false; - } - - function separateDeclarationAndInit(memo, varDeclar) { - memo.varDeclaration.push(_.omit(varDeclar, "init")); - self._addToExportStatements(varDeclar.id.name, t.assignmentExpression("=", varDeclar.id, varDeclar.init)); - return memo; - } - - var declarationSeparation = _.reduce( - declar.declarations, - separateDeclarationAndInit, - { varDeclaration: [], varInitialization: [] } - ); - - return _.assign(declar, { declarations: declarationSeparation.varDeclaration }); -}; - -SystemFormatter.prototype._extractExportFunctionDeclaration = function (node) { - var declar = node.declaration; - - if (!(t.isExportDeclaration(node) && t.isFunctionDeclaration(declar))) { - return false; - } - this._addToExportStatements(declar.id.name, declar.id); - return declar; - -}; - -SystemFormatter.prototype._extractExportSpecifiers = function (node) { - var self = this; - - if (!(t.isExportDeclaration(node) && node.specifiers)) { - return false; - } - - _.each(node.specifiers, function (specifier) { - // Run each, break when one is true. - _.some([ - SystemFormatter.prototype._extractExportBatch, - SystemFormatter.prototype._extractExportFrom, - SystemFormatter.prototype._extractExportNamed - ], function (extractor) { - var result = extractor.call(self, specifier, node); - return result === undefined || result; - }); - }); - - // Note: here we don't care about the node replacement. - // The current node will always be removed. - // So no return. -}; - -SystemFormatter.prototype._extractExportBatch = function (specifier, node) { - if (!(node.source && t.isExportBatchSpecifier(specifier))) { - return false; - } - - var exportBatch = this._makeExportWildcard(SETTER_MODULE_NAMESPACE); - this._addImportStatement(node.source.value, exportBatch); -}; - -SystemFormatter.prototype._extractExportFrom = function (specifier, node) { - // Weak test here... - if (!(node.source)) { - return false; - } - - var variableName = t.getSpecifierName(specifier); - - var target = t.memberExpression( - SETTER_MODULE_NAMESPACE, - specifier.id - ); - - var exportSelection = this._makeExportStatements([ - t.literal(variableName.name), target - ]); - - this._addImportStatement(node.source.value, exportSelection); -}; - -SystemFormatter.prototype._extractExportNamed = function (specifier) { - // Last case... - // Dunno what to test here... - - var variableName = t.getSpecifierName(specifier); - this._addToExportStatements(variableName.name, specifier.id); -}; - -// Utils collection handler - -SystemFormatter.prototype._addToExportStatements = function (name, identifier) { - this.exportedStatements.push( - this._makeExportStatements([t.literal(name), identifier]) - ); -}; - -SystemFormatter.prototype._makeExportWildcard = function (objectIdentifier) { +SystemFormatter.prototype._exportsWildcard = function (objectIdentifier) { var leftIdentifier = t.identifier("i"); var valIdentifier = t.memberExpression(objectIdentifier, leftIdentifier, true); @@ -256,83 +39,50 @@ SystemFormatter.prototype._makeExportWildcard = function (objectIdentifier) { return t.forInStatement(left, right, block); }; -SystemFormatter.prototype._addImportStatement = function (name, importStatement) { - this.moduleDependencies[name] = this.moduleDependencies[name] || []; - importStatement && this.moduleDependencies[name].push(importStatement); +SystemFormatter.prototype._exportsAssign = function (id, init, isExpression) { + return this.buildExportCall(id.name, init, true); }; -// Additional body content +SystemFormatter.prototype.remapExportAssignment = function (node) { + return this.buildExportCall(node.left.name, node); +}; -SystemFormatter.prototype._prependImportVariables = function (ast) { - var declaredSetters = _(this.importedVariables).keys().map(function (name) { - return _.compose(t.variableDeclarator, t.identifier)(name); - }).value(); - - if (declaredSetters.length) { - ast.program.body.splice(1, 0, t.variableDeclaration("var", declaredSetters)); +SystemFormatter.prototype.buildExportCall = function (id, init, isStatement) { + var call = t.callExpression(this.exportIdentifier, [t.literal(id), init]); + if (isStatement) { + return t.expressionStatement(call); + } else { + return call; } }; -SystemFormatter.prototype._prependPrivateModuleName = function (ast) { - // generate the __moduleName variable - var moduleNameVariableNode = t.variableDeclaration("var", [ - t.variableDeclarator( - PRIVATE_MODULE_NAME_IDENTIFIER, - this.moduleNameLiteral - ) - ]); +SystemFormatter.prototype.buildRunnerSetters = function () { + return t.arrayExpression(_.map(this.ids, function (uid) { + var moduleIdentifier = t.identifier("m"); - ast.program.body.splice(1, 0, moduleNameVariableNode); + return t.functionExpression(null, [moduleIdentifier], t.blockStatement([ + t.assignmentExpression("=", uid, moduleIdentifier) + ])); + })); }; -SystemFormatter.prototype._buildSetters = function () { - // generate setters array expression elements - return _.map(this.moduleDependencies, function (specs) { - if (!specs.length) { - return NULL_SETTER; - } - - return t.functionExpression( - null, [SETTER_MODULE_NAMESPACE], t.blockStatement(specs) - ); - }); -}; - -SystemFormatter.prototype._appendModuleReturnStatement = function (ast) { - // generate the execute function expression - var executeFunctionExpression = t.functionExpression( - null, [], t.blockStatement(this.exportedStatements) - ); - - // generate the execute function expression - var settersArrayExpression = t.arrayExpression(this._buildSetters()); - - // generate the return statement - var moduleReturnStatement = t.returnStatement(t.objectExpression([ - t.property("init", t.identifier("setters"), settersArrayExpression), - t.property("init", t.identifier("execute"), executeFunctionExpression) - ])); - - ast.program.body.push(moduleReturnStatement); -}; - -SystemFormatter.prototype._wrapInSystemRegisterCallExpression = function (ast) { +SystemFormatter.prototype.transform = function (ast) { var program = ast.program; - var body = program.body; - - var moduleDependencyNames = Object - .keys(this.moduleDependencies) - .map(t.literal); var runner = util.template("system", { MODULE_NAME: this.moduleNameLiteral, - MODULE_DEPENDENCIES: t.arrayExpression(moduleDependencyNames), - MODULE_BODY: t.functionExpression( - null, - [this.exportIdentifier], - t.blockStatement(body) - ) + MODULE_DEPENDENCIES: t.arrayExpression(this.buildDependencyLiterals()), + EXPORT_IDENTIFIER: this.exportIdentifier, + SETTERS: this.buildRunnerSetters(), + EXECUTE: t.functionExpression(null, [], t.blockStatement(program.body)) }, true); + if (!_.isEmpty(this.ids)) { + var handlerBody = runner.expression.arguments[2].body.body; + handlerBody.unshift(t.variableDeclaration("var", _.map(this.ids, function (uid) { + return t.variableDeclarator(uid); + }))); + } + program.body = [runner]; }; diff --git a/test/fixtures/transformation/es6-modules-system/exports-default/expected.js b/test/fixtures/transformation/es6-modules-system/exports-default/expected.js index d7f15bc3db..074d3026c8 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-default/expected.js @@ -1,17 +1,9 @@ System.register("es6-modules-system/exports-default/expected", [], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/exports-default/expected"; - - function _anonymous() {} - function _anonymous2() {} - - function foo() {} - function Foo() {} - return { setters: [], execute: function () { + "use strict"; + _export("default", 42); _export("default", {}); @@ -20,13 +12,16 @@ System.register("es6-modules-system/exports-default/expected", [], function (_ex _export("default", foo); - _export("default", _anonymous); + _export("default", function () {}); - _export("default", _anonymous2); + _export("default", function () {}); + function foo() {} _export("default", foo); + var Foo = function Foo() {}; + _export("default", Foo); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/exports-named/expected.js b/test/fixtures/transformation/es6-modules-system/exports-named/expected.js index 2a85134834..e297af4bfe 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-named/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-named/expected.js @@ -1,11 +1,9 @@ System.register("es6-modules-system/exports-named/expected", [], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/exports-named/expected"; - return { setters: [], execute: function () { + "use strict"; + _export("foo", foo); _export("foo", foo); @@ -21,4 +19,4 @@ System.register("es6-modules-system/exports-named/expected", [], function (_expo _export("bar", bar); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js index 5fe0f898f6..636a73a17d 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js @@ -1,34 +1,21 @@ System.register("es6-modules-system/exports-variable/expected", [], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/exports-variable/expected"; - - var foo; - var foo2; - var foo3; - var foo4; - var foo5; - var foo6; - function foo7() {} - var foo8; return { setters: [], execute: function () { - _export("foo", foo = 1); - - _export("foo2", foo2 = function () {}); - - _export("foo3", foo3 = undefined); - - _export("foo4", foo4 = 2); - - _export("foo5", foo5 = undefined); - - _export("foo6", foo6 = 3); + "use strict"; _export("foo7", foo7); - _export("foo8", foo8 = function foo8() {}); + var foo = _export("foo", 1); + var foo2 = _export("foo2", function () {}); + var foo3 = _export("foo3", undefined); + var foo4 = _export("foo4", 2); + var foo5 = _export("foo5", undefined); + var foo6 = _export("foo6", 3); + function foo7() {} + var foo8 = function foo8() {}; + + _export("foo8", foo8); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/hoist-function-exports/expected.js b/test/fixtures/transformation/es6-modules-system/hoist-function-exports/expected.js index 3434b17c6c..ad626fc12d 100644 --- a/test/fixtures/transformation/es6-modules-system/hoist-function-exports/expected.js +++ b/test/fixtures/transformation/es6-modules-system/hoist-function-exports/expected.js @@ -1,26 +1,24 @@ System.register("es6-modules-system/hoist-function-exports/expected", ["./evens"], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/hoist-function-exports/expected"; - - var isEven; - function nextOdd(n) { - return isEven(n) ? n + 1 : n + 2; - } - - var isOdd; + var _evens; return { setters: [function (m) { - isEven = m.isEven; + _evens = m }], execute: function () { + "use strict"; + _export("nextOdd", nextOdd); - _export("isOdd", isOdd = (function (isEven) { + var isEven = _evens.isEven; + function nextOdd(n) { + return isEven(n) ? n + 1 : n + 2; + } + + var isOdd = _export("isOdd", (function (isEven) { return function (n) { return !isEven(n); }; })(isEven)); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/imports-default/expected.js b/test/fixtures/transformation/es6-modules-system/imports-default/expected.js index 1cc8cfea3d..c4e481d3d8 100644 --- a/test/fixtures/transformation/es6-modules-system/imports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports-default/expected.js @@ -1,14 +1,19 @@ System.register("es6-modules-system/imports-default/expected", ["foo"], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/imports-default/expected"; - - var foo; + var _foo; return { setters: [function (m) { - foo = m.default; - foo = m.default; + _foo = m }], - execute: function () {} + execute: function () { + "use strict"; + + var _interopRequire = function (obj) { + return obj && (obj["default"] || obj); + }; + + var foo = _interopRequire(_foo); + + var foo = _interopRequire(_foo); + } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/imports-glob/expected.js b/test/fixtures/transformation/es6-modules-system/imports-glob/expected.js index 077c6046e1..d641fe072e 100644 --- a/test/fixtures/transformation/es6-modules-system/imports-glob/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports-glob/expected.js @@ -1,13 +1,13 @@ System.register("es6-modules-system/imports-glob/expected", ["foo"], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/imports-glob/expected"; - - var foo; + var _foo; return { setters: [function (m) { - foo = m; + _foo = m }], - execute: function () {} + execute: function () { + "use strict"; + + var foo = _foo; + } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/imports-mixing/expected.js b/test/fixtures/transformation/es6-modules-system/imports-mixing/expected.js index 88537f6b14..79469ef9a7 100644 --- a/test/fixtures/transformation/es6-modules-system/imports-mixing/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports-mixing/expected.js @@ -1,14 +1,19 @@ System.register("es6-modules-system/imports-mixing/expected", ["foo"], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/imports-mixing/expected"; - - var foo, xyz; + var _foo; return { setters: [function (m) { - foo = m.default; - xyz = m.baz; + _foo = m }], - execute: function () {} + execute: function () { + "use strict"; + + var _interopRequire = function (obj) { + return obj && (obj["default"] || obj); + }; + + var foo = _interopRequire(_foo); + + var xyz = _foo.baz; + } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/imports-named/expected.js b/test/fixtures/transformation/es6-modules-system/imports-named/expected.js index 0db8e3a0e5..cb3db1ff7a 100644 --- a/test/fixtures/transformation/es6-modules-system/imports-named/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports-named/expected.js @@ -1,18 +1,18 @@ System.register("es6-modules-system/imports-named/expected", ["foo"], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/imports-named/expected"; - - var bar, baz, xyz; + var _foo; return { setters: [function (m) { - bar = m.bar; - bar = m.bar; - baz = m.baz; - baz = m.bar; - baz = m.bar; - xyz = m.xyz; + _foo = m }], - execute: function () {} + execute: function () { + "use strict"; + + var bar = _foo.bar; + var bar = _foo.bar; + var baz = _foo.baz; + var baz = _foo.bar; + var baz = _foo.bar; + var xyz = _foo.xyz; + } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/imports/expected.js b/test/fixtures/transformation/es6-modules-system/imports/expected.js index 9aa94f7fe2..76236eb64e 100644 --- a/test/fixtures/transformation/es6-modules-system/imports/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports/expected.js @@ -1,10 +1,15 @@ System.register("es6-modules-system/imports/expected", ["foo", "foo-bar", "./directory/foo-bar"], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/imports/expected"; - + var _foo, _fooBar, _directoryFooBar; return { - setters: [null, null, null], - execute: function () {} + setters: [function (m) { + _foo = m + }, function (m) { + _fooBar = m + }, function (m) { + _directoryFooBar = m + }], + execute: function () { + "use strict"; + } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/overview/expected.js b/test/fixtures/transformation/es6-modules-system/overview/expected.js index 6cb5b97950..9bd4fe1f90 100644 --- a/test/fixtures/transformation/es6-modules-system/overview/expected.js +++ b/test/fixtures/transformation/es6-modules-system/overview/expected.js @@ -1,24 +1,30 @@ System.register("es6-modules-system/overview/expected", ["foo", "foo-bar", "./directory/foo-bar"], function (_export) { - "use strict"; - - var __moduleName = "es6-modules-system/overview/expected"; - - var foo, bar; - var test; - + var _foo, _fooBar, _directoryFooBar; return { setters: [function (m) { - foo = m.default; - foo = m; - bar = m.bar; - bar = m.foo; - }, null, null], + _foo = m + }, function (m) { + _fooBar = m + }, function (m) { + _directoryFooBar = m + }], execute: function () { + "use strict"; + + var _interopRequire = function (obj) { + return obj && (obj["default"] || obj); + }; + + var foo = _interopRequire(_foo); + + var foo = _foo; + var bar = _foo.bar; + var bar = _foo.foo; _export("test", test); - _export("test", test = 5); + var test = _export("test", 5); _export("default", test); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/remap/actual.js b/test/fixtures/transformation/es6-modules-system/remap/actual.js new file mode 100644 index 0000000000..7345a055a5 --- /dev/null +++ b/test/fixtures/transformation/es6-modules-system/remap/actual.js @@ -0,0 +1,7 @@ +export var test = 2; +test = 5; + +(function () { + var test = 2; + test = 3; +})(); diff --git a/test/fixtures/transformation/es6-modules-system/remap/expected.js b/test/fixtures/transformation/es6-modules-system/remap/expected.js new file mode 100644 index 0000000000..58803da194 --- /dev/null +++ b/test/fixtures/transformation/es6-modules-system/remap/expected.js @@ -0,0 +1,16 @@ +System.register("es6-modules-system/remap/expected", [], function (_export) { + return { + setters: [], + execute: function () { + "use strict"; + + var test = _export("test", 2); + test = 5; + + (function () { + var test = 2; + test = 3; + })(); + } + }; +}); \ No newline at end of file