diff --git a/lib/6to5/transformation/modules/amd.js b/lib/6to5/transformation/modules/amd.js index 56387fafb4..bfa4bfcf7c 100644 --- a/lib/6to5/transformation/modules/amd.js +++ b/lib/6to5/transformation/modules/amd.js @@ -31,12 +31,15 @@ AMDFormatter.prototype.transform = function (ast) { // build an array of module names - var names = [t.literal("exports")].concat(this.buildDependencyLiterals()); + var names = [t.literal("exports")]; + if (this.passModuleArg) names.push(t.literal("module")); + names = names.concat(this.buildDependencyLiterals()); names = t.arrayExpression(names); // build up define container var params = _.values(this.ids); + if (this.passModuleArg) params.unshift(t.identifier("module")); params.unshift(t.identifier("exports")); var container = t.functionExpression(null, params, t.blockStatement(body)); diff --git a/lib/6to5/transformation/modules/umd.js b/lib/6to5/transformation/modules/umd.js index e23c7c6fc2..4f0ec24ce9 100644 --- a/lib/6to5/transformation/modules/umd.js +++ b/lib/6to5/transformation/modules/umd.js @@ -25,22 +25,31 @@ UMDFormatter.prototype.transform = function (ast) { // factory var ids = _.values(this.ids); - var args = [t.identifier("exports")].concat(ids); + var args = [t.identifier("exports")]; + if (this.passModuleArg) args.push(t.identifier("module")); + args = args.concat(ids); var factory = t.functionExpression(null, args, t.blockStatement(body)); // runner - var defineArgs = [t.arrayExpression([t.literal("exports")].concat(names))]; + var defineArgs = [t.literal("exports")]; + if (this.passModuleArg) defineArgs.push(t.literal("module")); + defineArgs = defineArgs.concat(names); + defineArgs = [t.arrayExpression(defineArgs)]; + + var commonArgs = []; + if (this.passModuleArg) commonArgs.push(t.identifier("module")); + commonArgs = commonArgs.concat(names.map(function (name) { + return t.callExpression(t.identifier("require"), [name]); + })); + var moduleName = this.getModuleName(); if (moduleName) defineArgs.unshift(t.literal(moduleName)); var runner = util.template("umd-runner-body", { AMD_ARGUMENTS: defineArgs, - - COMMON_ARGUMENTS: names.map(function (name) { - return t.callExpression(t.identifier("require"), [name]); - }) + COMMON_ARGUMENTS: commonArgs }); //