diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index dfa90b3b258a..774cbdabac6e 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 6559968ffa3c..12c1a20b889d 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 000000000000..e75e32a6cb37 --- /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 000000000000..9e14f2a7c2c2 --- /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 000000000000..0e58adc155be --- /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 000000000000..e75e32a6cb37 --- /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 000000000000..71281fc3d3c4 --- /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 000000000000..c22ce7d5efe4 --- /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(); +}