Skip to content

Commit

Permalink
Inline exports.XXX = update in simple variable declarations (#15984)
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Sep 19, 2023
1 parent b7489e7 commit 0d8b6df
Show file tree
Hide file tree
Showing 177 changed files with 536 additions and 965 deletions.
3 changes: 1 addition & 2 deletions packages/babel-core/test/assumptions.js
Expand Up @@ -156,8 +156,7 @@ describe("assumptions", () => {
exports.__esModule = true;
exports.foo = void 0;
const foo = 1;
exports.foo = foo;"
const foo = exports.foo = 1;"
`);
});
});
Expand Down
Expand Up @@ -89,7 +89,7 @@ exports.default = void 0;
//
//
//
var _default = {
var _default = exports.default = {
name: 'HelloWorld',
data() {
return {
Expand All @@ -114,4 +114,3 @@ var _default = {
//
//
//
exports.default = _default;
@@ -1,4 +1,4 @@
(87:0-16) export default { <-- (92:15-16) t = {
(87:0-16) export default { <-- (92:33-34) t = {
^^^^^^^^^^^^^^^^ ^

(88:0-21) name: 'HelloWorld', <-- (93:2-6) name: 'H
Expand Down
Expand Up @@ -11,5 +11,5 @@
"sourcesContent": [
"<template>\n <div class=\"hello\">\n <h1>{{ msg }}</h1>\n <h2>Essential Links</h2>\n <ul>\n <li>\n <a\n href=\"https://vuejs.org\"\n target=\"_blank\"\n >\n Core Docs\n </a>\n </li>\n <li>\n <a\n href=\"https://forum.vuejs.org\"\n target=\"_blank\"\n >\n Forum\n </a>\n </li>\n <li>\n <a\n href=\"https://chat.vuejs.org\"\n target=\"_blank\"\n >\n Community Chat\n </a>\n </li>\n <li>\n <a\n href=\"https://twitter.com/vuejs\"\n target=\"_blank\"\n >\n Twitter\n </a>\n </li>\n <br>\n <li>\n <a\n href=\"http://vuejs-templates.github.io/webpack/\"\n target=\"_blank\"\n >\n Docs for This Template\n </a>\n </li>\n </ul>\n <h2>Ecosystem</h2>\n <ul>\n <li>\n <a\n href=\"http://router.vuejs.org/\"\n target=\"_blank\"\n >\n vue-router\n </a>\n </li>\n <li>\n <a\n href=\"http://vuex.vuejs.org/\"\n target=\"_blank\"\n >\n vuex\n </a>\n </li>\n <li>\n <a\n href=\"http://vue-loader.vuejs.org/\"\n target=\"_blank\"\n >\n vue-loader\n </a>\n </li>\n <li>\n <a\n href=\"https://github.com/vuejs/awesome-vue\"\n target=\"_blank\"\n >\n awesome-vue\n </a>\n </li>\n </ul>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'HelloWorld',\n data () {\n return {\n msg: 'Welcome to Your Vue.js App'\n }\n }\n}\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style scoped>\nh1, h2 {\n font-weight: normal;\n}\nul {\n list-style-type: none;\n padding: 0;\n}\nli {\n display: inline-block;\n margin: 0 10px;\n}\na {\n color: #42b983;\n}\n</style>\n"
],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAsFA;EACAA,IAAA;EACAC,KAAA;IACA;MACAC,GAAA;IACA;EACA;AACA,G"
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAsFA;EACAA,IAAA;EACAC,KAAA;IACA;MACAC,GAAA;IACA;EACA;AACA,G"
}
Expand Up @@ -12,6 +12,10 @@ const {
expressionStatement,
getOuterBindingIdentifiers,
identifier,
isArrowFunctionExpression,
isClassExpression,
isFunctionExpression,
isIdentifier,
isMemberExpression,
isVariableDeclaration,
jsxIdentifier,
Expand Down Expand Up @@ -204,25 +208,58 @@ const rewriteBindingInitVisitor: Visitor<RewriteBindingInitVisitorState> = {
VariableDeclaration(path) {
const { requeueInParent, exported, metadata } = this;

Object.keys(path.getOuterBindingIdentifiers()).forEach(localName => {
const exportNames = exported.get(localName) || [];

if (exportNames.length > 0) {
const statement = expressionStatement(
// eslint-disable-next-line @typescript-eslint/no-use-before-define
buildBindingExportAssignmentExpression(
metadata,
exportNames,
identifier(localName),
path.scope,
),
const isVar = path.node.kind === "var";

for (const decl of path.get("declarations")) {
const { id } = decl.node;
let { init } = decl.node;
if (
isIdentifier(id) &&
exported.has(id.name) &&
!isArrowFunctionExpression(init) &&
(!isFunctionExpression(init) || init.id) &&
(!isClassExpression(init) || init.id)
) {
if (!init) {
if (isVar) {
// This variable might have already been assigned to, and the
// uninitalized declaration doesn't set it to `undefined` and does
// not updated the exported value.
continue;
} else {
init = path.scope.buildUndefinedNode();
}
}
// eslint-disable-next-line @typescript-eslint/no-use-before-define
decl.node.init = buildBindingExportAssignmentExpression(
metadata,
exported.get(id.name),
init,
path.scope,
);
// @ts-expect-error todo(flow->ts): avoid mutations
statement._blockHoist = path.node._blockHoist;
requeueInParent(decl.get("init"));
} else {
for (const localName of Object.keys(
decl.getOuterBindingIdentifiers(),
)) {
if (exported.has(localName)) {
const statement = expressionStatement(
// eslint-disable-next-line @typescript-eslint/no-use-before-define
buildBindingExportAssignmentExpression(
metadata,
exported.get(localName),
identifier(localName),
path.scope,
),
);
// @ts-expect-error todo(flow->ts): avoid mutations
statement._blockHoist = path.node._blockHoist;

requeueInParent(path.insertAfter(statement)[0]);
requeueInParent(path.insertAfter(statement)[0]);
}
}
}
});
}
},
};

Expand Down
Expand Up @@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = /*#__PURE__*/babelHelpers.asyncToGenerator(function* () {
var _default = exports.default = /*#__PURE__*/babelHelpers.asyncToGenerator(function* () {
return yield foo();
});
exports.default = _default;
Expand Up @@ -8,7 +8,7 @@ var _net = babelHelpers.interopRequireDefault(require("net"));
var _events = require("events");
var _binarySerializer = babelHelpers.interopRequireDefault(require("./helpers/binary-serializer"));
// import ...
var Connection = /*#__PURE__*/function (_EventEmitter) {
var Connection = exports["default"] = /*#__PURE__*/function (_EventEmitter) {
babelHelpers.inherits(Connection, _EventEmitter);
var _super = babelHelpers.createSuper(Connection);
function Connection(endpoint, joinKey, joinData, roomId) {
Expand All @@ -34,4 +34,3 @@ var Connection = /*#__PURE__*/function (_EventEmitter) {
}]);
return Connection;
}(_events.EventEmitter);
exports["default"] = Connection;
Expand Up @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports["default"] = void 0;
var _BaseFoo2 = babelHelpers.interopRequireDefault(require("./BaseFoo"));
var SubFoo = /*#__PURE__*/function (_BaseFoo) {
var SubFoo = exports["default"] = /*#__PURE__*/function (_BaseFoo) {
babelHelpers.inherits(SubFoo, _BaseFoo);
var _super = babelHelpers.createSuper(SubFoo);
function SubFoo() {
Expand All @@ -21,4 +21,3 @@ var SubFoo = /*#__PURE__*/function (_BaseFoo) {
}]);
return SubFoo;
}(_BaseFoo2["default"]);
exports["default"] = SubFoo;
Expand Up @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports["default"] = void 0;
var _react = babelHelpers.interopRequireWildcard(require("react"));
var RandomComponent = /*#__PURE__*/function (_Component) {
var RandomComponent = exports["default"] = /*#__PURE__*/function (_Component) {
babelHelpers.inherits(RandomComponent, _Component);
var _super = babelHelpers.createSuper(RandomComponent);
function RandomComponent() {
Expand All @@ -22,4 +22,3 @@ var RandomComponent = /*#__PURE__*/function (_Component) {
}]);
return RandomComponent;
}(_react.Component);
exports["default"] = RandomComponent;
Expand Up @@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _default = /*#__PURE__*/babelHelpers.createClass(function _default() {
var _default = exports["default"] = /*#__PURE__*/babelHelpers.createClass(function _default() {
babelHelpers.classCallCheck(this, _default);
});
exports["default"] = _default;
Expand Up @@ -21,7 +21,7 @@ var a1 = /*#__PURE__*/function (_b) {
}
return babelHelpers.createClass(a1);
}(b);
var a2 = /*#__PURE__*/function (_b2) {
var a2 = exports["default"] = /*#__PURE__*/function (_b2) {
babelHelpers.inherits(a2, _b2);
var _super2 = babelHelpers.createSuper(a2);
function a2() {
Expand All @@ -35,4 +35,3 @@ var a2 = /*#__PURE__*/function (_b2) {
}
return babelHelpers.createClass(a2);
}(b);
exports["default"] = a2;
Expand Up @@ -7,6 +7,5 @@ define(["require", "exports", "foo"], function (_require, _exports, _foo) {
_exports.mod = void 0;
_foo = babelHelpers.interopRequireDefault(_foo);
var mod;
_exports.mod = mod;
new Promise((_resolve, _reject) => _require(["mod"], imported => _resolve(babelHelpers.interopRequireWildcard(imported)), _reject)).then(m => _exports.mod = mod = m);
});
Expand Up @@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _default = function _default() {
var _default = exports["default"] = function _default() {
return {
x: function x(_ref) {
var _x = _ref.x;
}
};
};
exports["default"] = _default;
Expand Up @@ -4,12 +4,11 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _default = function _default(_ref) {
var _default = exports["default"] = function _default(_ref) {
var _onClick = _ref.onClick;
return /*#__PURE__*/React.createElement("div", {
onClick: function onClick() {
return _onClick();
}
});
};
exports["default"] = _default;
Expand Up @@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _default = function _default(_a) {
var _default = exports["default"] = function _default(_a) {
return {
a: function a() {
return _a;
}
};
};
exports["default"] = _default;
Expand Up @@ -5,12 +5,11 @@ define(["exports"], function (_exports) {
value: true
});
_exports.default = void 0;
var _default = function _default(_a) {
var _default = _exports.default = function _default(_a) {
return {
a: function a() {
return _a;
}
};
};
_exports.default = _default;
});
Expand Up @@ -17,12 +17,11 @@
value: true
});
_exports.default = void 0;
var _default = function _default(_a) {
var _default = _exports.default = function _default(_a) {
return {
a: function a() {
return _a;
}
};
};
_exports.default = _default;
});
Expand Up @@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = function _default(_a) {
var _default = exports.default = function _default(_a) {
return {
a: function a() {
return _a;
}
};
};
exports.default = _default;
Expand Up @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports.default = void 0;
var _last2 = babelHelpers.interopRequireDefault(require("lo-dash/last"));
let Container = /*#__PURE__*/function () {
let Container = exports.default = /*#__PURE__*/function () {
function Container() {
babelHelpers.classCallCheck(this, Container);
}
Expand All @@ -20,4 +20,3 @@ let Container = /*#__PURE__*/function () {
}]);
return Container;
}();
exports.default = Container;
Expand Up @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports.default = void 0;
var _store = require("./store");
let Login = /*#__PURE__*/function (_React$Component) {
let Login = exports.default = /*#__PURE__*/function (_React$Component) {
babelHelpers.inherits(Login, _React$Component);
var _super = babelHelpers.createSuper(Login);
function Login() {
Expand All @@ -20,4 +20,3 @@ let Login = /*#__PURE__*/function (_React$Component) {
}]);
return Login;
}(React.Component);
exports.default = Login;
Expand Up @@ -5,8 +5,7 @@ define(["exports"], function (_exports) {
value: true
});
_exports.default = void 0;
var _default = function () {
var _default = _exports.default = function () {
return "foo";
}();
_exports.default = _default;
});
Expand Up @@ -5,6 +5,5 @@ define(["exports"], function (_exports) {
value: true
});
_exports.default = void 0;
var _default = {};
_exports.default = _default;
var _default = _exports.default = {};
});
Expand Up @@ -5,6 +5,5 @@ define(["exports"], function (_exports) {
value: true
});
_exports.default = void 0;
var _default = [];
_exports.default = _default;
var _default = _exports.default = [];
});
Expand Up @@ -5,6 +5,5 @@ define(["exports"], function (_exports) {
value: true
});
_exports.default = void 0;
var _default = foo;
_exports.default = _default;
var _default = _exports.default = foo;
});
Expand Up @@ -6,5 +6,4 @@ define(["exports"], function (_exports) {
});
_exports.default = void 0;
var foo;
_exports.default = foo;
});
Expand Up @@ -5,6 +5,5 @@ define(["exports"], function (_exports) {
value: true
});
_exports.default = void 0;
var _default = 42;
_exports.default = _default;
var _default = _exports.default = 42;
});
Expand Up @@ -6,6 +6,4 @@ define(["exports"], function (_exports) {
});
_exports.foo = _exports.bar = void 0;
var foo, bar;
_exports.bar = bar;
_exports.foo = foo;
});
Expand Up @@ -6,5 +6,4 @@ define(["exports"], function (_exports) {
});
_exports.bar = void 0;
var foo;
_exports.bar = foo;
});
Expand Up @@ -6,5 +6,4 @@ define(["exports"], function (_exports) {
});
_exports.default = void 0;
var foo;
_exports.default = foo;
});
Expand Up @@ -6,6 +6,4 @@ define(["exports"], function (_exports) {
});
_exports.default = _exports.bar = void 0;
var foo, bar;
_exports.bar = bar;
_exports.default = foo;
});
Expand Up @@ -6,5 +6,4 @@ define(["exports"], function (_exports) {
});
_exports.foo = void 0;
var foo;
_exports.foo = foo;
});

0 comments on commit 0d8b6df

Please sign in to comment.