From be2d85d688f95d70512db36caad3a1cfdb6dacb0 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 31 Dec 2015 17:11:51 +0200 Subject: [PATCH] use a _context object instead of a __moduleName argument --- .../src/index.js | 17 ++++++++++++++--- .../systemjs/exports-default/expected.js | 2 +- .../fixtures/systemjs/exports-from/expected.js | 2 +- .../fixtures/systemjs/exports-named/expected.js | 2 +- .../systemjs/exports-variable/expected.js | 2 +- .../systemjs/get-module-name-option/expected.js | 2 +- .../systemjs/hoist-function-exports/expected.js | 2 +- .../systemjs/imports-default/expected.js | 2 +- .../fixtures/systemjs/imports-glob/expected.js | 2 +- .../systemjs/imports-mixing/expected.js | 2 +- .../fixtures/systemjs/imports-named/expected.js | 2 +- .../test/fixtures/systemjs/imports/expected.js | 2 +- .../fixtures/systemjs/module-name/expected.js | 4 ++-- .../test/fixtures/systemjs/overview/expected.js | 2 +- .../test/fixtures/systemjs/remap/expected.js | 2 +- 15 files changed, 29 insertions(+), 18 deletions(-) diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js index 26b51b5bfc..d7696cf557 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js @@ -2,7 +2,7 @@ import hoistVariables from "babel-helper-hoist-variables"; import template from "babel-template"; let buildTemplate = template(` - System.register(MODULE_NAME, [SOURCES], function (EXPORT_IDENTIFIER, __moduleName) { + System.register(MODULE_NAME, [SOURCES], function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) { BEFORE_BODY; return { setters: [SETTERS], @@ -52,9 +52,19 @@ export default function ({ types: t }) { inherits: require("babel-plugin-transform-strict-mode"), visitor: { + ReferencedIdentifier(path, state) { + if (path.node.name == "__moduleName" && !path.scope.hasBinding("__moduleName")) { + path.replaceWith(t.memberExpression(state.contextIdent, t.identifier("id"))); + } + }, + Program: { - exit(path) { + enter(path, state) { + state.contextIdent = path.scope.generateUidIdentifier("context"); + }, + exit(path, state) { let exportIdent = path.scope.generateUidIdentifier("export"); + let contextIdent = state.contextIdent; let exportNames = Object.create(null); let modules = Object.create(null); @@ -241,7 +251,8 @@ export default function ({ types: t }) { SETTERS: setters, SOURCES: sources, BODY: path.node.body, - EXPORT_IDENTIFIER: exportIdent + EXPORT_IDENTIFIER: exportIdent, + CONTEXT_IDENTIFIER: contextIdent }) ]; } diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-default/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-default/expected.js index ea02e1f7ed..c003ef7fd8 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-default/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-default/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register([], function (_export, __moduleName) { +System.register([], function (_export, _context) { _export("default", function () {}); _export("default", class {}); diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-from/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-from/expected.js index a00c6d504f..f5f9929a13 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-from/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-from/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register(["foo"], function (_export, __moduleName) { +System.register(["foo"], function (_export, _context) { return { setters: [function (_foo) { var _exportObj = {}; diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-named/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-named/expected.js index 02d43b8964..5cbaf37b55 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-named/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-named/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register([], function (_export, __moduleName) { +System.register([], function (_export, _context) { return { setters: [], execute: function () { diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-variable/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-variable/expected.js index 363dc07b16..53c351f83d 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-variable/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/exports-variable/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register([], function (_export, __moduleName) { +System.register([], function (_export, _context) { return { setters: [], execute: function () { diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/get-module-name-option/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/get-module-name-option/expected.js index 5051a4b792..9c667425c1 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/get-module-name-option/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/get-module-name-option/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register("my custom module name", [], function (_export, __moduleName) { +System.register("my custom module name", [], function (_export, _context) { return { setters: [], execute: function () {} diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/hoist-function-exports/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/hoist-function-exports/expected.js index 58800512d9..9c3ded3f2e 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/hoist-function-exports/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/hoist-function-exports/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register(["./evens"], function (_export, __moduleName) { +System.register(["./evens"], function (_export, _context) { var isEven, p, a, i, j, isOdd; return { setters: [function (_evens) { diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-default/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-default/expected.js index cd395e89a6..ae6c560d0a 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-default/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-default/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register(["foo"], function (_export, __moduleName) { +System.register(["foo"], function (_export, _context) { var foo, foo2; return { setters: [function (_foo) { diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-glob/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-glob/expected.js index 6d48c426e7..884f4282c2 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-glob/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-glob/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register(["foo"], function (_export, __moduleName) { +System.register(["foo"], function (_export, _context) { var foo; return { setters: [function (_foo) { diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-mixing/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-mixing/expected.js index 45b7f08f04..5dd20ec349 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-mixing/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-mixing/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register(["foo"], function (_export, __moduleName) { +System.register(["foo"], function (_export, _context) { var foo, xyz; return { setters: [function (_foo) { diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-named/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-named/expected.js index 7a6ace03c0..d8200b9d22 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-named/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports-named/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register(["foo"], function (_export, __moduleName) { +System.register(["foo"], function (_export, _context) { var bar, bar2, baz, baz2, baz3, xyz; return { setters: [function (_foo) { diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports/expected.js index 8196f6b492..0d1d67cafa 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/imports/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export, __moduleName) { +System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export, _context) { return { setters: [function (_foo) {}, function (_fooBar) {}, function (_directoryFooBar) {}], execute: function () {} diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/module-name/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/module-name/expected.js index e2c2bd2cec..d0074c7ccc 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/module-name/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/module-name/expected.js @@ -1,11 +1,11 @@ "use strict"; -System.register([], function (_export, __moduleName) { +System.register([], function (_export, _context) { var name; return { setters: [], execute: function () { - _export("name", name = __moduleName); + _export("name", name = _context.id); _export("name", name); } diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/overview/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/overview/expected.js index 42f87535ab..46c4de062e 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/overview/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/overview/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export, __moduleName) { +System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export, _context) { var foo, foo2, bar, bar2, test2; return { setters: [function (_foo) { diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/remap/expected.js b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/remap/expected.js index 002b2b4905..e3dc453b03 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/remap/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/test/fixtures/systemjs/remap/expected.js @@ -1,6 +1,6 @@ "use strict"; -System.register([], function (_export, __moduleName) { +System.register([], function (_export, _context) { var test, a, b, d; return { setters: [],