From 23983b841cbcc71380472798171019276892c7c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 18 Nov 2021 23:17:56 +0100 Subject: [PATCH] Don't compress helpers --- .../babel-helpers/scripts/generate-helpers.js | 3 ++- .../babel-helpers/src/helpers-generated.ts | 10 ++++---- .../scripts/build-dist.js | 16 ++++++++++--- .../helpers/iterableToArray.js | 3 +-- .../helpers/temporalRef.js | 3 +-- .../babel-runtime-corejs2/helpers/toArray.js | 3 +-- .../babel-runtime-corejs2/helpers/typeof.js | 23 +++++-------------- .../babel-runtime/helpers/iterableToArray.js | 3 +-- packages/babel-runtime/helpers/temporalRef.js | 3 +-- packages/babel-runtime/helpers/toArray.js | 3 +-- packages/babel-runtime/helpers/typeof.js | 23 +++++-------------- 11 files changed, 38 insertions(+), 55 deletions(-) diff --git a/packages/babel-helpers/scripts/generate-helpers.js b/packages/babel-helpers/scripts/generate-helpers.js index a2900c48e198..1c59746df9c3 100644 --- a/packages/babel-helpers/scripts/generate-helpers.js +++ b/packages/babel-helpers/scripts/generate-helpers.js @@ -46,8 +46,9 @@ export default Object.freeze({ const { minVersion } = minVersionMatch.groups; const source = await minify(fileContents, { - compress: false, mangle: false, + // The _typeof helper has a custom directive that we must keep + compress: { directives: false }, }); output += `\ diff --git a/packages/babel-helpers/src/helpers-generated.ts b/packages/babel-helpers/src/helpers-generated.ts index 9a2545b8a9ea..1f148f411cae 100644 --- a/packages/babel-helpers/src/helpers-generated.ts +++ b/packages/babel-helpers/src/helpers-generated.ts @@ -15,22 +15,22 @@ function helper(minVersion, source) { export default Object.freeze({ asyncIterator: helper( "7.15.9", - 'export default function _asyncIterator(iterable){var method,async,sync,retry=2;if(typeof Symbol!=="undefined"){async=Symbol.asyncIterator;sync=Symbol.iterator}while(retry--){if(async&&(method=iterable[async])!=null){return method.call(iterable)}if(sync&&(method=iterable[sync])!=null){return new AsyncFromSyncIterator(method.call(iterable))}async="@@asyncIterator";sync="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(s){AsyncFromSyncIterator=function(s){this.s=s;this.n=s.next};AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(value){var ret=this.s.return;if(ret===undefined){return Promise.resolve({value:value,done:true})}return AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments))},throw:function(value){var thr=this.s.return;if(thr===undefined)return Promise.reject(value);return AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments))}};function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r){return Promise.reject(new TypeError(r+" is not an object."))}var done=r.done;return Promise.resolve(r.value).then((function(value){return{value:value,done:done}}))}return new AsyncFromSyncIterator(s)}', + 'export default function _asyncIterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then((function(value){return{value:value,done:done}}))}return AsyncFromSyncIterator=function(s){this.s=s,this.n=s.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(value){var ret=this.s.return;return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments))},throw:function(value){var thr=this.s.return;return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments))}},new AsyncFromSyncIterator(s)}', ), jsx: helper( "7.0.0-beta.0", - 'var REACT_ELEMENT_TYPE;export default function _createRawReactElement(type,props,key,children){if(!REACT_ELEMENT_TYPE){REACT_ELEMENT_TYPE=typeof Symbol==="function"&&Symbol["for"]&&Symbol["for"]("react.element")||60103}var defaultProps=type&&type.defaultProps;var childrenLength=arguments.length-3;if(!props&&childrenLength!==0){props={children:void 0}}if(childrenLength===1){props.children=children}else if(childrenLength>1){var childArray=new Array(childrenLength);for(var i=0;i1){for(var childArray=new Array(childrenLength),i=0;i]+)>/g,(function(_,name){return"$"+groups[name]})))}else if(typeof substitution==="function"){var _this=this;return _super[Symbol.replace].call(this,str,(function(){var args=arguments;if(typeof args[args.length-1]!=="object"){args=[].slice.call(args);args.push(buildGroups(args,_this))}return substitution.apply(this,args)}))}else{return _super[Symbol.replace].call(this,str,substitution)}};function buildGroups(result,re){var g=_groups.get(re);return Object.keys(g).reduce((function(groups,name){groups[name]=result[g[name]];return groups}),Object.create(null))}return _wrapRegExp.apply(this,arguments)}', + 'import setPrototypeOf from"setPrototypeOf";import inherits from"inherits";export default function _wrapRegExp(){_wrapRegExp=function(re,groups){return new BabelRegExp(re,void 0,groups)};var _super=RegExp.prototype,_groups=new WeakMap;function BabelRegExp(re,flags,groups){var _this=new RegExp(re,flags);return _groups.set(_this,groups||_groups.get(re)),setPrototypeOf(_this,BabelRegExp.prototype)}function buildGroups(result,re){var g=_groups.get(re);return Object.keys(g).reduce((function(groups,name){return groups[name]=result[g[name]],groups}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(str){var result=_super.exec.call(this,str);return result&&(result.groups=buildGroups(result,this)),result},BabelRegExp.prototype[Symbol.replace]=function(str,substitution){if("string"==typeof substitution){var groups=_groups.get(this);return _super[Symbol.replace].call(this,str,substitution.replace(/\\$<([^>]+)>/g,(function(_,name){return"$"+groups[name]})))}if("function"==typeof substitution){var _this=this;return _super[Symbol.replace].call(this,str,(function(){var args=arguments;return"object"!=typeof args[args.length-1]&&(args=[].slice.call(args)).push(buildGroups(args,_this)),substitution.apply(this,args)}))}return _super[Symbol.replace].call(this,str,substitution)},_wrapRegExp.apply(this,arguments)}', ), }); diff --git a/packages/babel-plugin-transform-runtime/scripts/build-dist.js b/packages/babel-plugin-transform-runtime/scripts/build-dist.js index df6c0c96c1a1..4e13c713901c 100644 --- a/packages/babel-plugin-transform-runtime/scripts/build-dist.js +++ b/packages/babel-plugin-transform-runtime/scripts/build-dist.js @@ -302,14 +302,24 @@ function buildRuntimeRewritePlugin(runtimeName, helperName) { } function addDefaultCJSExport({ template }) { + const transformed = new WeakSet(); + return { visitor: { AssignmentExpression: { exit(path) { if (path.get("left").matchesPattern("module.exports")) { - path.insertAfter(template.expression.ast` - module.exports.default = module.exports, - module.exports.__esModule = true + if (transformed.has(path.node)) return; + transformed.add(path.node); + + // Ensure that the completion value is still `module.exports`. + // This would be guaranteed by `insertAfter`, but by using `replaceWith` + // we can do it by putting `module.exports` last so that we don't need + // to inject temporary variables. + path.replaceWith(template.expression.ast` + ${path.node}, + module.exports.__esModule = true, + module.exports.default = module.exports `); } }, diff --git a/packages/babel-runtime-corejs2/helpers/iterableToArray.js b/packages/babel-runtime-corejs2/helpers/iterableToArray.js index 76184cd3d85e..b90cc9d6037a 100644 --- a/packages/babel-runtime-corejs2/helpers/iterableToArray.js +++ b/packages/babel-runtime-corejs2/helpers/iterableToArray.js @@ -8,5 +8,4 @@ function _iterableToArray(iter) { if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter); } -module.exports = _iterableToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file +module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/packages/babel-runtime-corejs2/helpers/temporalRef.js b/packages/babel-runtime-corejs2/helpers/temporalRef.js index d4e9460656bb..6afd9323c7f7 100644 --- a/packages/babel-runtime-corejs2/helpers/temporalRef.js +++ b/packages/babel-runtime-corejs2/helpers/temporalRef.js @@ -6,5 +6,4 @@ function _temporalRef(val, name) { return val === temporalUndefined ? tdz(name) : val; } -module.exports = _temporalRef; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file +module.exports = _temporalRef, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/packages/babel-runtime-corejs2/helpers/toArray.js b/packages/babel-runtime-corejs2/helpers/toArray.js index 3b911bda3104..d0af0e932928 100644 --- a/packages/babel-runtime-corejs2/helpers/toArray.js +++ b/packages/babel-runtime-corejs2/helpers/toArray.js @@ -10,5 +10,4 @@ function _toArray(arr) { return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest(); } -module.exports = _toArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file +module.exports = _toArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/packages/babel-runtime-corejs2/helpers/typeof.js b/packages/babel-runtime-corejs2/helpers/typeof.js index 035dfceca599..4ebe8ca2abd3 100644 --- a/packages/babel-runtime-corejs2/helpers/typeof.js +++ b/packages/babel-runtime-corejs2/helpers/typeof.js @@ -5,22 +5,11 @@ var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator") function _typeof(obj) { "@babel/helpers - typeof"; - if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") { - module.exports = _typeof = function _typeof(obj) { - return typeof obj; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - } else { - module.exports = _typeof = function _typeof(obj) { - return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - } - - return _typeof(obj); + return (module.exports = _typeof = "function" == typeof _Symbol && "symbol" == typeof _Symbol$iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof _Symbol && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj; + }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj); } -module.exports = _typeof; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file +module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/iterableToArray.js b/packages/babel-runtime/helpers/iterableToArray.js index 03f955d68ef8..5b9038a8848c 100644 --- a/packages/babel-runtime/helpers/iterableToArray.js +++ b/packages/babel-runtime/helpers/iterableToArray.js @@ -2,5 +2,4 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -module.exports = _iterableToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file +module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/temporalRef.js b/packages/babel-runtime/helpers/temporalRef.js index d4e9460656bb..6afd9323c7f7 100644 --- a/packages/babel-runtime/helpers/temporalRef.js +++ b/packages/babel-runtime/helpers/temporalRef.js @@ -6,5 +6,4 @@ function _temporalRef(val, name) { return val === temporalUndefined ? tdz(name) : val; } -module.exports = _temporalRef; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file +module.exports = _temporalRef, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/toArray.js b/packages/babel-runtime/helpers/toArray.js index 3b911bda3104..d0af0e932928 100644 --- a/packages/babel-runtime/helpers/toArray.js +++ b/packages/babel-runtime/helpers/toArray.js @@ -10,5 +10,4 @@ function _toArray(arr) { return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest(); } -module.exports = _toArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file +module.exports = _toArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/typeof.js b/packages/babel-runtime/helpers/typeof.js index 02a5d8a8c564..6c7860ff7fb5 100644 --- a/packages/babel-runtime/helpers/typeof.js +++ b/packages/babel-runtime/helpers/typeof.js @@ -1,22 +1,11 @@ function _typeof(obj) { "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - module.exports = _typeof = function _typeof(obj) { - return typeof obj; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - } else { - module.exports = _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - } - - return _typeof(obj); + return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj); } -module.exports = _typeof; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file +module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file