Skip to content

Commit

Permalink
Tweak helper compilation targets (#12615)
Browse files Browse the repository at this point in the history
* refactor: simply browserslists defaults overwriting

When `hasTargets` is `false`,  `targets` is always an empty object by definition, `objectToBrowserslist({})` always return `[]` therefore we can remove `objectToBrowserslist`.

* test: apply external-helpers on preset-env test fixtures

* test: add ie 6 to force all transforms in corejs 3, debug, corejs 2 fixtures

* Add ie 6 as targets for test fixtures
  • Loading branch information
JLHwung committed Jan 12, 2021
1 parent e004a91 commit eda4130
Show file tree
Hide file tree
Showing 81 changed files with 2,323 additions and 2,397 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"plugins": ["transform-async-to-generator"],
"presets": ["env"]
"presets": [["env", { "targets": { "browsers": "ie 6" } }]]
}
17 changes: 1 addition & 16 deletions packages/babel-helper-compilation-targets/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,6 @@ export { unreleasedLabels } from "./targets";
const v = new OptionValidator(packageName);
const browserslistDefaults = browserslist.defaults;

const validBrowserslistTargets = [
...Object.keys(browserslist.data),
...Object.keys(browserslist.aliases),
];

function objectToBrowserslist(object: Targets): Array<string> {
return Object.keys(object).reduce((list, targetName) => {
if (validBrowserslistTargets.indexOf(targetName) >= 0) {
const targetVersion = object[targetName];
return list.concat(`${targetName} ${targetVersion}`);
}
return list;
}, []);
}

function validateTargetNames(targets: Targets): TargetsTuple {
const validTargets = Object.keys(TargetNames);
for (const target of Object.keys(targets)) {
Expand Down Expand Up @@ -203,7 +188,7 @@ export default function getTargets(
// of `defaults` in queries will be different since we don't want to break
// the behavior of "no targets is the same as preset-latest".
if (!hasTargets) {
browserslist.defaults = objectToBrowserslist(targets);
browserslist.defaults = [];
}

const browsers = browserslist(browsersquery, {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"plugins": ["external-helpers"],
"presets": ["env"]
"presets": [["env", { "targets": { "browsers": "ie 6" } }]]
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"plugins": ["external-helpers", "proposal-class-properties"],
"presets": ["env", "react"]
"presets": [["env", { "targets": { "browsers": "ie 6" } }], "react"]
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"presets": ["env"]
"presets": [["env", { "targets": { "browsers": "ie 6" } }]]
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"presets": ["env", "react"]
"presets": [["env", { "targets": { "browsers": "ie 6" } }], "react"]
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"presets": ["env"],
"presets": [["env", { "targets": { "browsers": "ie 6" } }]],
"plugins": ["proposal-class-properties"]
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"presets": ["env"]
"presets": [["env", { "targets": { "browsers": "ie 6" } }]]
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@
"../../../../lib",
{
"shippedProposals": true,
"targets": { "browsers": "ie 6" },
"useBuiltIns": "entry",
"corejs": 2
}
]
]
],
"plugins": [["external-helpers", { "helperVersion": "7.100.0" }]]
}
Original file line number Diff line number Diff line change
Expand Up @@ -296,32 +296,6 @@ require("core-js/modules/web.dom.iterable.js");

require("regenerator-runtime/runtime.js");

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _awaitAsyncGenerator(value) { return new _AwaitValue(value); }

function _wrapAsyncGenerator(fn) { return function () { return new _AsyncGenerator(fn.apply(this, arguments)); }; }

function _AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; var wrappedAwait = value instanceof _AwaitValue; Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { if (wrappedAwait) { resume(key === "return" ? "return" : "next", arg); return; } settle(result.done ? "return" : "normal", arg); }, function (err) { resume("throw", err); }); } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen["return"] !== "function") { this["return"] = undefined; } }

if (typeof Symbol === "function" && Symbol.asyncIterator) { _AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; }; }

_AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };

_AsyncGenerator.prototype["throw"] = function (arg) { return this._invoke("throw", arg); };

_AsyncGenerator.prototype["return"] = function (arg) { return this._invoke("return", arg); };

function _AwaitValue(value) { this.wrapped = value; }

var _x$y$a$b = {
x: 1,
y: 2,
Expand All @@ -330,9 +304,8 @@ var _x$y$a$b = {
},
x = _x$y$a$b.x,
y = _x$y$a$b.y,
z = _objectWithoutProperties(_x$y$a$b, ["x", "y"]);

var n = _objectSpread({
z = babelHelpers.objectWithoutProperties(_x$y$a$b, ["x", "y"]);
var n = babelHelpers.objectSpread2({
x: x,
y: y
}, z);
Expand All @@ -342,13 +315,13 @@ function agf() {
}

function _agf() {
_agf = _wrapAsyncGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
_agf = babelHelpers.wrapAsyncGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _awaitAsyncGenerator(1);
return babelHelpers.awaitAsyncGenerator(1);

case 2:
_context.next = 4;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"../../../../lib",
{
"useBuiltIns": "usage",
"targets": { "browsers": "ie 6" },
"corejs": 2,
"modules": false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"../../../../lib",
{
"useBuiltIns": "usage",
"targets": { "browsers": "ie 6" },
"corejs": 2,
"modules": false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"../../../../lib",
{
"useBuiltIns": "usage",
"targets": { "browsers": "ie 6" },
"corejs": 2,
"modules": false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"../../../../lib",
{
"shippedProposals": true,
"targets": { "browsers": "ie 6" },
"useBuiltIns": "usage",
"corejs": 2
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
"targets": {
"ie": 11
},
"modules": false,
"useBuiltIns": "entry",
"corejs": 3,
"modules": false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
"targets": {
"ie": 9
},
"modules": false,
"useBuiltIns": "entry",
"corejs": 3,
"modules": false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
{
"modules": false,
"useBuiltIns": "entry",
"targets": { "browsers": "ie 6" },
"corejs": 3,
"exclude": ["transform-regenerator"]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import "core-js/modules/es.array.map.js";
import "core-js/modules/es.array.of.js";
import "core-js/modules/es.array.reduce.js";
import "core-js/modules/es.array.reduce-right.js";
import "core-js/modules/es.array.reverse.js";
import "core-js/modules/es.array.slice.js";
import "core-js/modules/es.array.some.js";
import "core-js/modules/es.array.sort.js";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"../../../../lib",
{
"useBuiltIns": "usage",
"targets": { "browsers": "ie 6" },
"corejs": 3,
"modules": false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"../../../../lib",
{
"useBuiltIns": "usage",
"targets": { "browsers": "ie 6" },
"corejs": 3,
"modules": false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
{
"useBuiltIns": "usage",
"corejs": 3,
"targets": { "browsers": "ie 6" },
"modules": false,
"exclude": ["transform-destructuring"]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
{
"useBuiltIns": "usage",
"corejs": 3,
"targets": { "browsers": "ie 6" },
"modules": false,
"exclude": ["transform-destructuring"]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"../../../../lib",
{
"useBuiltIns": "usage",
"targets": { "browsers": "ie 6" },
"corejs": 3,
"modules": false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"../../../../lib",
{
"useBuiltIns": "usage",
"targets": { "browsers": "ie 6" },
"corejs": 3,
"modules": false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"../../../../lib",
{
"useBuiltIns": "usage",
"targets": { "browsers": "ie 6" },
"corejs": 3,
"modules": false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"env",
{
"debug": true,
"targets": { "browsers": "ie 6" },
"corejs": 3
}
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,50 +3,52 @@ WARNING (@babel/preset-env): The `corejs` option only has an effect when the `us
@babel/preset-env: `DEBUG` option

Using targets:
{}
{
"ie": "6"
}

Using modules transform: auto

Using plugins:
proposal-numeric-separator {}
proposal-logical-assignment-operators {}
proposal-nullish-coalescing-operator {}
proposal-optional-chaining {}
proposal-json-strings {}
proposal-optional-catch-binding {}
transform-parameters {}
proposal-async-generator-functions {}
proposal-object-rest-spread {}
transform-dotall-regex {}
proposal-unicode-property-regex {}
transform-named-capturing-groups-regex {}
transform-async-to-generator {}
transform-exponentiation-operator {}
transform-template-literals {}
transform-literals {}
transform-function-name {}
transform-arrow-functions {}
transform-block-scoped-functions {}
transform-classes {}
transform-object-super {}
transform-shorthand-properties {}
transform-duplicate-keys {}
transform-computed-properties {}
transform-for-of {}
transform-sticky-regex {}
transform-unicode-escapes {}
transform-unicode-regex {}
transform-spread {}
transform-destructuring {}
transform-block-scoping {}
transform-typeof-symbol {}
transform-new-target {}
transform-regenerator {}
transform-member-expression-literals {}
transform-property-literals {}
transform-reserved-words {}
proposal-export-namespace-from {}
transform-modules-commonjs {}
proposal-dynamic-import {}
proposal-numeric-separator { "ie":"6" }
proposal-logical-assignment-operators { "ie":"6" }
proposal-nullish-coalescing-operator { "ie":"6" }
proposal-optional-chaining { "ie":"6" }
proposal-json-strings { "ie":"6" }
proposal-optional-catch-binding { "ie":"6" }
transform-parameters { "ie":"6" }
proposal-async-generator-functions { "ie":"6" }
proposal-object-rest-spread { "ie":"6" }
transform-dotall-regex { "ie":"6" }
proposal-unicode-property-regex { "ie":"6" }
transform-named-capturing-groups-regex { "ie":"6" }
transform-async-to-generator { "ie":"6" }
transform-exponentiation-operator { "ie":"6" }
transform-template-literals { "ie":"6" }
transform-literals { "ie":"6" }
transform-function-name { "ie":"6" }
transform-arrow-functions { "ie":"6" }
transform-block-scoped-functions { "ie":"6" }
transform-classes { "ie":"6" }
transform-object-super { "ie":"6" }
transform-shorthand-properties { "ie":"6" }
transform-duplicate-keys { "ie":"6" }
transform-computed-properties { "ie":"6" }
transform-for-of { "ie":"6" }
transform-sticky-regex { "ie":"6" }
transform-unicode-escapes { "ie":"6" }
transform-unicode-regex { "ie":"6" }
transform-spread { "ie":"6" }
transform-destructuring { "ie":"6" }
transform-block-scoping { "ie":"6" }
transform-typeof-symbol { "ie":"6" }
transform-new-target { "ie":"6" }
transform-regenerator { "ie":"6" }
transform-member-expression-literals { "ie":"6" }
transform-property-literals { "ie":"6" }
transform-reserved-words { "ie":"6" }
proposal-export-namespace-from { "ie":"6" }
transform-modules-commonjs { "ie":"6" }
proposal-dynamic-import { "ie":"6" }

Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
{
"debug": true,
"useBuiltIns": "entry",
"targets": { "browsers": "ie 6" },
"corejs": { "version": 2, "proposals": true }
}
]
Expand Down

0 comments on commit eda4130

Please sign in to comment.