diff --git a/packages/metro-transform-plugins/package.json b/packages/metro-transform-plugins/package.json index cb7d4a63b4..8f1b5c3b07 100644 --- a/packages/metro-transform-plugins/package.json +++ b/packages/metro-transform-plugins/package.json @@ -14,7 +14,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.14.0", - "@babel/generator": "^7.14.0", + "@babel/generator": "^7.20.0", "@babel/template": "^7.0.0", "@babel/traverse": "^7.14.0", "nullthrows": "^1.1.1" diff --git a/packages/metro-transform-plugins/src/__tests__/normalizePseudoGlobals-test.js b/packages/metro-transform-plugins/src/__tests__/normalizePseudoGlobals-test.js index b5b3b7484e..ab4aca99d2 100644 --- a/packages/metro-transform-plugins/src/__tests__/normalizePseudoGlobals-test.js +++ b/packages/metro-transform-plugins/src/__tests__/normalizePseudoGlobals-test.js @@ -62,15 +62,12 @@ it('minimizes arguments given', () => { expect(result.code).toMatchInlineSnapshot(` "__d(function (g, _r, m, e, d) { _r(27).foo(); - (function () { { const r = 1; // _$$_REQUIRE will be renamed to \\"_r\\". - return r++; } })(); - (function () { var global = 'potato'; return global + 'tomato'; diff --git a/packages/metro-transform-worker/package.json b/packages/metro-transform-worker/package.json index c50b720bb9..a2bf91d4ec 100644 --- a/packages/metro-transform-worker/package.json +++ b/packages/metro-transform-worker/package.json @@ -14,7 +14,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.14.0", - "@babel/generator": "^7.14.0", + "@babel/generator": "^7.20.0", "@babel/parser": "^7.14.0", "@babel/types": "^7.20.0", "babel-preset-fbjs": "^3.4.0", diff --git a/packages/metro-transform-worker/src/__tests__/__snapshots__/index-test.js.snap b/packages/metro-transform-worker/src/__tests__/__snapshots__/index-test.js.snap index 98fc7fc2fd..6611d9ac8a 100644 --- a/packages/metro-transform-worker/src/__tests__/__snapshots__/index-test.js.snap +++ b/packages/metro-transform-worker/src/__tests__/__snapshots__/index-test.js.snap @@ -6,118 +6,122 @@ exports[`transforms a module with dependencies 1`] = ` Array [ Array [ 2, - 0, + 2, 1, 0, ], Array [ - 6, - 0, - 5, - 0, + 2, + 14, + 1, + 12, ], Array [ - 8, - 0, + 4, 2, + 1, + 13, + ], + Array [ + 5, + 2, + 5, 0, - "require", ], Array [ - 8, + 6, 2, 2, 0, "require", ], Array [ - 8, + 6, 13, 2, 7, ], Array [ - 8, + 6, 39, 2, - 0, + 14, ], Array [ - 10, - 0, - 3, - 0, - "arbitrary", - ], - Array [ - 10, + 7, 2, 3, 0, "arbitrary", ], Array [ - 10, + 7, 11, 3, 9, ], Array [ - 10, + 7, 12, 3, 10, "code", ], Array [ - 10, + 7, 16, 3, - 9, + 14, ], Array [ - 10, + 7, 17, 3, - 0, + 15, ], Array [ - 12, - 0, + 8, + 2, 4, 0, ], Array [ - 12, + 8, 6, 4, 6, "b", ], Array [ - 12, + 8, 7, 4, 7, ], Array [ - 12, + 8, 10, 4, 10, "require", ], Array [ - 12, + 8, 21, 4, 17, ], Array [ - 12, + 8, 45, 4, + 22, + ], + Array [ + 9, 0, + 4, + 23, ], ] `; @@ -133,13 +137,6 @@ Object { exports[`transforms a simple module 1`] = ` Array [ - Array [ - 2, - 0, - 1, - 0, - "arbitrary", - ], Array [ 2, 2, @@ -164,13 +161,19 @@ Array [ 2, 16, 1, - 9, + 14, ], Array [ 2, 17, 1, + 15, + ], + Array [ + 3, 0, + 1, + 15, ], ] `; @@ -186,13 +189,6 @@ Object { exports[`transforms a simple script 1`] = ` Array [ - Array [ - 2, - 0, - 1, - 0, - "someReallyArbitrary", - ], Array [ 2, 2, @@ -217,13 +213,19 @@ Array [ 2, 26, 1, - 19, + 24, ], Array [ 2, 27, 1, + 25, + ], + Array [ + 3, 0, + 1, + 25, ], ] `; @@ -240,18 +242,14 @@ Object { exports[`transforms an es module with asyncToGenerator 1`] = ` "__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { var _interopRequireDefault = _$$_REQUIRE(_dependencyMap[0], \\"@babel/runtime/helpers/interopRequireDefault\\"); - Object.defineProperty(exports, \\"__esModule\\", { value: true }); exports.test = test; - var _asyncToGenerator2 = _interopRequireDefault(_$$_REQUIRE(_dependencyMap[1], \\"@babel/runtime/helpers/asyncToGenerator\\")); - function test() { return _test.apply(this, arguments); } - function _test() { _test = (0, _asyncToGenerator2.default)(function* () {}); return _test.apply(this, arguments); @@ -272,20 +270,15 @@ Object { exports[`transforms async generators 1`] = ` "__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { var _interopRequireDefault = _$$_REQUIRE(_dependencyMap[0], \\"@babel/runtime/helpers/interopRequireDefault\\"); - Object.defineProperty(exports, \\"__esModule\\", { value: true }); exports.test = test; - var _awaitAsyncGenerator2 = _interopRequireDefault(_$$_REQUIRE(_dependencyMap[1], \\"@babel/runtime/helpers/awaitAsyncGenerator\\")); - var _wrapAsyncGenerator2 = _interopRequireDefault(_$$_REQUIRE(_dependencyMap[2], \\"@babel/runtime/helpers/wrapAsyncGenerator\\")); - function test() { return _test.apply(this, arguments); } - function _test() { _test = (0, _wrapAsyncGenerator2.default)(function* () { yield \\"ok\\"; @@ -299,7 +292,7 @@ exports[`transforms import/export syntax when experimental flag is on 1`] = ` Array [ Array [ 4, - 0, + 2, 1, 0, ], @@ -314,7 +307,13 @@ Array [ 4, 7, 1, + 8, + ], + Array [ + 5, 0, + 1, + 20, ], ] `; diff --git a/packages/metro-transform-worker/src/__tests__/index-test.js b/packages/metro-transform-worker/src/__tests__/index-test.js index 15290907dd..ebc9f18657 100644 --- a/packages/metro-transform-worker/src/__tests__/index-test.js +++ b/packages/metro-transform-worker/src/__tests__/index-test.js @@ -159,13 +159,9 @@ it('transforms a module with dependencies', async () => { ' "use strict";', '', ' var _interopRequireDefault = _$$_REQUIRE(_dependencyMap[0], "@babel/runtime/helpers/interopRequireDefault");', - '', ' var _c = _interopRequireDefault(_$$_REQUIRE(_dependencyMap[1], "./c"));', - '', ' _$$_REQUIRE(_dependencyMap[2], "./a");', - '', ' arbitrary(code);', - '', ' var b = _$$_REQUIRE(_dependencyMap[3], "b");', '});', ].join('\n'), @@ -198,7 +194,7 @@ it('transforms an es module with asyncToGenerator', async () => { expect(result.output[0].type).toBe('js/module'); expect(result.output[0].data.code).toMatchSnapshot(); - expect(result.output[0].data.map).toHaveLength(6); + expect(result.output[0].data.map).toHaveLength(13); expect(result.output[0].data.functionMap).toMatchSnapshot(); expect(result.dependencies).toEqual([ { diff --git a/packages/metro/package.json b/packages/metro/package.json index da488ba84c..28943f44e3 100644 --- a/packages/metro/package.json +++ b/packages/metro/package.json @@ -15,7 +15,7 @@ "dependencies": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.14.0", - "@babel/generator": "^7.14.0", + "@babel/generator": "^7.20.0", "@babel/parser": "^7.14.0", "@babel/template": "^7.0.0", "@babel/traverse": "^7.14.0", diff --git a/packages/metro/src/Bundler/__tests__/__snapshots__/util-test.js.snap b/packages/metro/src/Bundler/__tests__/__snapshots__/util-test.js.snap index c7d7216f1c..977b5e3cb7 100644 --- a/packages/metro/src/Bundler/__tests__/__snapshots__/util-test.js.snap +++ b/packages/metro/src/Bundler/__tests__/__snapshots__/util-test.js.snap @@ -17,7 +17,6 @@ exports[`Util generates a remote asset for a given descriptor 1`] = ` pickScale, getUrlCacheBreaker } = require(\\"react-native-module/asset-utils\\"); - module.exports = { \\"width\\": 240, \\"height\\": 24, diff --git a/packages/metro/src/integration_tests/__tests__/__snapshots__/buildGraph-test.js.snap b/packages/metro/src/integration_tests/__tests__/__snapshots__/buildGraph-test.js.snap index cb2aebf628..ccc30e77fd 100644 --- a/packages/metro/src/integration_tests/__tests__/__snapshots__/buildGraph-test.js.snap +++ b/packages/metro/src/integration_tests/__tests__/__snapshots__/buildGraph-test.js.snap @@ -5,14 +5,12 @@ Array [ Object { "data": Object { "code": "__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { + 'use strict'; var Bar = _$$_REQUIRE(_dependencyMap[0]); - var Foo = _$$_REQUIRE(_dependencyMap[1]); - var TypeScript = _$$_REQUIRE(_dependencyMap[2]); - Object.keys(Object.assign({}, Bar)); module.exports = { Foo: Foo, @@ -26,55 +24,61 @@ Array [ "", ], }, - "lineCount": 16, + "lineCount": 14, "map": Array [ Array [ + 3, 2, - 0, 11, 0, ], Array [ - 4, - 0, + 3, + 14, + 11, + 12, + ], + Array [ + 5, + 2, 13, 0, ], Array [ - 4, + 5, 6, 13, 6, "Bar", ], Array [ - 4, + 5, 9, 13, 9, ], Array [ - 4, + 5, 12, 13, 12, "require", ], Array [ - 4, + 5, 23, 13, 19, ], Array [ - 4, + 5, 42, 13, - 0, + 28, ], Array [ 6, - 0, + 2, 14, 0, ], @@ -108,235 +112,212 @@ Array [ 6, 42, 14, - 0, + 28, ], Array [ - 8, - 0, + 7, + 2, 16, 0, ], Array [ - 8, + 7, 6, 16, 6, "TypeScript", ], Array [ - 8, + 7, 16, 16, 16, ], Array [ - 8, + 7, 19, 16, 19, "require", ], Array [ - 8, + 7, 30, 16, 26, ], Array [ - 8, + 7, 49, 16, - 0, - ], - Array [ - 10, - 0, - 18, - 0, - "Object", + 42, ], Array [ - 10, + 8, 2, 18, 0, "Object", ], Array [ - 10, + 8, 8, 18, 6, ], Array [ - 10, + 8, 9, 18, 7, "keys", ], Array [ - 10, + 8, 13, 18, - 0, + 11, ], Array [ - 10, + 8, 32, 18, 16, "Bar", ], Array [ - 10, + 8, 35, 18, - 0, + 19, ], Array [ - 11, - 0, - 20, - 0, - "module", + 8, + 37, + 18, + 21, ], Array [ - 11, + 9, 2, 20, 0, "module", ], Array [ - 11, + 9, 8, 20, 6, ], Array [ - 11, + 9, 9, 20, 7, "exports", ], Array [ - 11, + 9, 16, 20, - 0, + 14, ], Array [ - 11, + 9, 19, 20, 17, ], Array [ - 12, - 0, - 20, - 18, - "Foo", - ], - Array [ - 12, + 10, 4, 20, 18, "Foo", ], Array [ - 12, + 10, 7, 20, 21, ], Array [ - 12, + 10, 9, 20, 18, "Foo", ], Array [ - 12, + 10, 12, 20, - 17, - ], - Array [ - 13, - 0, - 20, - 23, - "Bar", + 21, ], Array [ - 13, + 11, 4, 20, 23, "Bar", ], Array [ - 13, + 11, 7, 20, 26, ], Array [ - 13, + 11, 9, 20, 23, "Bar", ], Array [ - 13, + 11, 12, 20, - 17, - ], - Array [ - 14, - 0, - 20, - 28, - "TypeScript", + 26, ], Array [ - 14, + 12, 4, 20, 28, "TypeScript", ], Array [ - 14, + 12, 14, 20, 38, ], Array [ - 14, + 12, 16, 20, 28, "TypeScript", ], Array [ - 15, - 0, + 13, + 2, 20, - 17, + 38, ], Array [ - 15, + 13, 3, 20, + 39, + ], + Array [ + 14, 0, + 20, + 40, ], ], }, diff --git a/yarn.lock b/yarn.lock index 0a1898ba57..85a0e47158 100644 --- a/yarn.lock +++ b/yarn.lock @@ -109,30 +109,12 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.14.0", "@babel/generator@^7.4.0": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.1.tgz#1f99331babd65700183628da186f36f63d615c93" - integrity sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ== +"@babel/generator@^7.14.0", "@babel/generator@^7.15.4", "@babel/generator@^7.19.0", "@babel/generator@^7.20.0", "@babel/generator@^7.4.0", "@babel/generator@^7.7.2": + version "7.20.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" + integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== dependencies: - "@babel/types" "^7.14.1" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" - integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== - dependencies: - "@babel/types" "^7.15.4" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.19.0", "@babel/generator@^7.7.2": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" - integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== - dependencies: - "@babel/types" "^7.19.0" + "@babel/types" "^7.20.2" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -1134,7 +1116,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.1", "@babel/types@^7.15.4", "@babel/types@^7.16.7", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0": +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.15.4", "@babel/types@^7.16.7", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==