From 4ce1b70adec6defff7020fb9d7f24122a5752ba9 Mon Sep 17 00:00:00 2001 From: SZ-Coder <65417876+sz-coder@users.noreply.github.com> Date: Thu, 30 Jul 2020 16:35:37 +0200 Subject: [PATCH] Fix incorrect module path when absoluteRuntime is specified (#11893) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * - Added failing tests for issue #11885. * - Fix issue #11885: absoluteRuntime does not work as expected with corejs3. * - Removed helper code from test output files (tests for issue #11885). * chore: add @babel/runtime-corejs3 to dev deps * chore: update test fixtures Co-authored-by: Huáng Jùnliàng --- .../package.json | 1 + .../src/index.js | 6 +-- .../true-corejs3-proposals/input.js | 8 ++++ .../true-corejs3-proposals/options.json | 7 ++++ .../true-corejs3-proposals/output.js | 41 +++++++++++++++++++ .../true-corejs3-stable/input.js | 8 ++++ .../true-corejs3-stable/options.json | 7 ++++ .../true-corejs3-stable/output.js | 41 +++++++++++++++++++ 8 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/input.js create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/options.json create mode 100644 packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index dfa90b3b25..774cbdabac 100644 --- a/packages/babel-plugin-transform-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -35,6 +35,7 @@ "@babel/plugin-transform-typeof-symbol": "^7.10.4", "@babel/preset-env": "^7.10.4", "@babel/runtime": "^7.10.5", + "@babel/runtime-corejs3": "^7.10.5", "@babel/template": "^7.10.4", "@babel/types": "^7.10.5" } diff --git a/packages/babel-plugin-transform-runtime/src/index.js b/packages/babel-plugin-transform-runtime/src/index.js index 6559968ffa..12c1a20b88 100644 --- a/packages/babel-plugin-transform-runtime/src/index.js +++ b/packages/babel-plugin-transform-runtime/src/index.js @@ -310,7 +310,7 @@ export default declare((api, options, dirname) => { node.callee = t.memberExpression( t.callExpression( this.addDefaultImport( - `${moduleName}/${corejsRoot}/instance/${InstanceProperties[propertyName].path}`, + `${modulePath}/${corejsRoot}/instance/${InstanceProperties[propertyName].path}`, `${propertyName}InstanceProperty`, ), [context2], @@ -379,7 +379,7 @@ export default declare((api, options, dirname) => { path.replaceWith( t.callExpression( this.addDefaultImport( - `${moduleName}/core-js/get-iterator-method`, + `${modulePath}/core-js/get-iterator-method`, "getIteratorMethod", ), [object], @@ -407,7 +407,7 @@ export default declare((api, options, dirname) => { path.replaceWith( t.callExpression( this.addDefaultImport( - `${moduleName}/${corejsRoot}/instance/${InstanceProperties[propertyName].path}`, + `${modulePath}/${corejsRoot}/instance/${InstanceProperties[propertyName].path}`, `${propertyName}InstanceProperty`, ), [object], diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/input.js new file mode 100644 index 0000000000..e75e32a6cb --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/input.js @@ -0,0 +1,8 @@ +Array.map; +function* makeIterator() { + yield 1; + yield 2; +} +for (const itItem of makeIterator()) { + console.log(itItem); +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/options.json new file mode 100644 index 0000000000..9e14f2a7c2 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/options.json @@ -0,0 +1,7 @@ +{ + "presets": ["env"], + "plugins": [ + ["transform-runtime", { "absoluteRuntime": true, "corejs": { "version": 3, "proposals": true } }], + ["external-helpers", { "helperVersion": "7.100.0" }] + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js new file mode 100644 index 0000000000..0e58adc155 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js @@ -0,0 +1,41 @@ +var _regeneratorRuntime = require("/packages/babel-plugin-transform-runtime/node_modules/@babel/runtime-corejs3/regenerator"); + +var _mapInstanceProperty = require("/packages/babel-plugin-transform-runtime/node_modules/@babel/runtime-corejs3/core-js/instance/map"); + +var _marked = /*#__PURE__*/_regeneratorRuntime.mark(makeIterator); + +_mapInstanceProperty(Array); + +function makeIterator() { + return _regeneratorRuntime.wrap(function makeIterator$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return 1; + + case 2: + _context.next = 4; + return 2; + + case 4: + case "end": + return _context.stop(); + } + } + }, _marked); +} + +var _iterator = babelHelpers.createForOfIteratorHelper(makeIterator()), + _step; + +try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var itItem = _step.value; + console.log(itItem); + } +} catch (err) { + _iterator.e(err); +} finally { + _iterator.f(); +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/input.js new file mode 100644 index 0000000000..e75e32a6cb --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/input.js @@ -0,0 +1,8 @@ +Array.map; +function* makeIterator() { + yield 1; + yield 2; +} +for (const itItem of makeIterator()) { + console.log(itItem); +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/options.json new file mode 100644 index 0000000000..71281fc3d3 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/options.json @@ -0,0 +1,7 @@ +{ + "presets": ["env"], + "plugins": [ + ["transform-runtime", { "absoluteRuntime": true, "corejs": { "version": 3, "proposals": false } }], + ["external-helpers", { "helperVersion": "7.100.0" }] + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js new file mode 100644 index 0000000000..c22ce7d5ef --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js @@ -0,0 +1,41 @@ +var _regeneratorRuntime = require("/packages/babel-plugin-transform-runtime/node_modules/@babel/runtime-corejs3/regenerator"); + +var _mapInstanceProperty = require("/packages/babel-plugin-transform-runtime/node_modules/@babel/runtime-corejs3/core-js-stable/instance/map"); + +var _marked = /*#__PURE__*/_regeneratorRuntime.mark(makeIterator); + +_mapInstanceProperty(Array); + +function makeIterator() { + return _regeneratorRuntime.wrap(function makeIterator$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return 1; + + case 2: + _context.next = 4; + return 2; + + case 4: + case "end": + return _context.stop(); + } + } + }, _marked); +} + +var _iterator = babelHelpers.createForOfIteratorHelper(makeIterator()), + _step; + +try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var itItem = _step.value; + console.log(itItem); + } +} catch (err) { + _iterator.e(err); +} finally { + _iterator.f(); +}