Skip to content

Commit

Permalink
fix(es/minifier): Handle synthesized export default expression (#7707)
Browse files Browse the repository at this point in the history
**Related issue:**

 - Closes #7634.
  • Loading branch information
Austaras committed Jul 31, 2023
1 parent ef30625 commit 5ea6f27
Show file tree
Hide file tree
Showing 36 changed files with 447 additions and 476 deletions.
20 changes: 10 additions & 10 deletions crates/swc/tests/fixture/issues-2xxx/2717/output/index.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
import { _ as e } from "@swc/helpers/_/_ts_generator";
import { takeLatest as t, select as r } from "redux-saga/effects";
import { CHANGE_THEME as o, CHANGE_THEME_CUSTOM_PALETTE as s, CHANGE_THEME_SWITCH_MODE as a } from "core/actions/changeTheme";
export var selectThemeObject = function(n) {
return n.theme;
export var selectThemeObject = function(e) {
return e.theme;
};
export function saveTheme(n) {
var c, i, m;
export function saveTheme(t) {
var o, s, n;
return e(this, function(e) {
switch(e.label){
case 0:
return c = n.type, [
return o = t.type, [
4,
r(selectThemeObject)
];
case 1:
return i = e.sent(), window.localStorage.setItem("theme", JSON.stringify({
theme: i.theme,
mode: i.mode,
palette: i.palette
})), c === a && (m = window.document.querySelector("body")) && (m.classList.add("light" === i.mode ? "light" : "dark"), m.classList.remove("light" === i.mode ? "dark" : "light")), [
return s = e.sent(), window.localStorage.setItem("theme", JSON.stringify({
theme: s.theme,
mode: s.mode,
palette: s.palette
})), o === a && (n = window.document.querySelector("body")) && (n.classList.add("light" === s.mode ? "light" : "dark"), n.classList.remove("light" === s.mode ? "dark" : "light")), [
2
];
}
Expand Down
10 changes: 5 additions & 5 deletions crates/swc/tests/fixture/issues-7xxx/7546/output/1.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { _ as _inherits } from "@swc/helpers/_/_inherits";
import { ClassName } from "./some-file";
export default {
field: /*#__PURE__*/ function(ClassName1) {
field: /*#__PURE__*/ function(ClassName) {
"use strict";
_inherits(ClassName2, ClassName1);
function ClassName2() {
return ClassName1.call(this);
_inherits(ClassName1, ClassName);
function ClassName1() {
return ClassName.call(this);
}
return ClassName2;
return ClassName1;
}(ClassName)
};
2 changes: 1 addition & 1 deletion crates/swc/tests/fixture/sourcemap/003/output/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
export default function E() {
_class_call_check(this, E);
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
export default function E() {
_class_call_check(this, E);
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
import { _ as _inherits } from "@swc/helpers/_/_inherits";
import { _ as _create_super } from "@swc/helpers/_/_create_super";
import { Foo } from "./Foo.js";
var Bar = /*#__PURE__*/ function(Foo1) {
var Bar = /*#__PURE__*/ function(Foo) {
"use strict";
_inherits(Bar, Foo1);
_inherits(Bar, Foo);
var _super = _create_super(Bar);
function Bar() {
_class_call_check(this, Bar);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
import { _ as _inherits } from "@swc/helpers/_/_inherits";
import { _ as _create_super } from "@swc/helpers/_/_create_super";
import { Foo } from "./Foo.js";
(function(Foo1) {
_inherits(Bar, Foo1);
(function(Foo) {
_inherits(Bar, Foo);
var _super = _create_super(Bar);
function Bar() {
return _class_call_check(this, Bar), _super.apply(this, arguments);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
var m = require("./exporter");
module.exports = m.default, module.exports.memberName = "thing";
//// [exporter.js]
export default function() {};
export default function() {}
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
import { _ as _inherits } from "@swc/helpers/_/_inherits";
import { _ as _create_super } from "@swc/helpers/_/_create_super";
import Fab from "./index3";
var Bar = /*#__PURE__*/ function(Fab1) {
var Bar = /*#__PURE__*/ function(Fab) {
"use strict";
_inherits(Bar, Fab1);
_inherits(Bar, Fab);
var _super = _create_super(Bar);
function Bar() {
_class_call_check(this, Bar);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
import { _ as _inherits } from "@swc/helpers/_/_inherits";
import { _ as _create_super } from "@swc/helpers/_/_create_super";
import Fab from "./index3";
var Bar = function(Fab1) {
_inherits(Bar, Fab1);
var Bar = function(Fab) {
_inherits(Bar, Fab);
var _super = _create_super(Bar);
function Bar() {
var _this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
export var el = null;
export default function A() {
_class_call_check(this, A);
};
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 comment on commit 5ea6f27

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 5ea6f27 Previous: f901b41 Ratio
es/full/bugs-1 288684 ns/iter (± 7764) 290902 ns/iter (± 7451) 0.99
es/full/minify/libraries/antd 1428074388 ns/iter (± 34502780) 1422593983 ns/iter (± 22543814) 1.00
es/full/minify/libraries/d3 295115324 ns/iter (± 9258315) 295168587 ns/iter (± 3375783) 1.00
es/full/minify/libraries/echarts 1160952815 ns/iter (± 6056683) 1135707790 ns/iter (± 25068730) 1.02
es/full/minify/libraries/jquery 87712407 ns/iter (± 257019) 87754579 ns/iter (± 645196) 1.00
es/full/minify/libraries/lodash 102312090 ns/iter (± 701308) 101287595 ns/iter (± 443677) 1.01
es/full/minify/libraries/moment 51674079 ns/iter (± 374407) 51363919 ns/iter (± 408052) 1.01
es/full/minify/libraries/react 18371072 ns/iter (± 187076) 18287297 ns/iter (± 134203) 1.00
es/full/minify/libraries/terser 237454536 ns/iter (± 1823341) 234492090 ns/iter (± 1925313) 1.01
es/full/minify/libraries/three 425755143 ns/iter (± 3835225) 413279951 ns/iter (± 2223144) 1.03
es/full/minify/libraries/typescript 2838904362 ns/iter (± 16417791) 2816408248 ns/iter (± 18076544) 1.01
es/full/minify/libraries/victory 631880503 ns/iter (± 10110217) 616265284 ns/iter (± 6850318) 1.03
es/full/minify/libraries/vue 126555427 ns/iter (± 988338) 125432708 ns/iter (± 2146878) 1.01
es/full/codegen/es3 34357 ns/iter (± 61) 33928 ns/iter (± 75) 1.01
es/full/codegen/es5 34388 ns/iter (± 45) 33965 ns/iter (± 133) 1.01
es/full/codegen/es2015 34400 ns/iter (± 89) 33957 ns/iter (± 66) 1.01
es/full/codegen/es2016 34363 ns/iter (± 84) 33928 ns/iter (± 59) 1.01
es/full/codegen/es2017 34266 ns/iter (± 59) 33944 ns/iter (± 33) 1.01
es/full/codegen/es2018 34300 ns/iter (± 69) 33960 ns/iter (± 67) 1.01
es/full/codegen/es2019 34410 ns/iter (± 77) 33910 ns/iter (± 77) 1.01
es/full/codegen/es2020 34410 ns/iter (± 54) 33946 ns/iter (± 65) 1.01
es/full/all/es3 173394047 ns/iter (± 2037616) 173994458 ns/iter (± 1356656) 1.00
es/full/all/es5 166595598 ns/iter (± 1067767) 167291547 ns/iter (± 1255129) 1.00
es/full/all/es2015 124858951 ns/iter (± 1145887) 127253181 ns/iter (± 704354) 0.98
es/full/all/es2016 124675729 ns/iter (± 788220) 124080545 ns/iter (± 3766658) 1.00
es/full/all/es2017 124242153 ns/iter (± 1000410) 125292544 ns/iter (± 2029246) 0.99
es/full/all/es2018 121636958 ns/iter (± 762959) 122303756 ns/iter (± 1315757) 0.99
es/full/all/es2019 120962138 ns/iter (± 1775998) 123268531 ns/iter (± 1328631) 0.98
es/full/all/es2020 116094130 ns/iter (± 461004) 117162123 ns/iter (± 1881073) 0.99
es/full/parser 528731 ns/iter (± 6074) 536164 ns/iter (± 6935) 0.99
es/full/base/fixer 19043 ns/iter (± 151) 18149 ns/iter (± 139) 1.05
es/full/base/resolver_and_hygiene 81188 ns/iter (± 282) 84241 ns/iter (± 298) 0.96
serialization of serde 303 ns/iter (± 1) 290 ns/iter (± 0) 1.04
css/minify/libraries/bootstrap 29500623 ns/iter (± 126101) 29668634 ns/iter (± 192179) 0.99
css/visitor/compare/clone 1653903 ns/iter (± 6777) 1648321 ns/iter (± 10044) 1.00
css/visitor/compare/visit_mut_span 1783264 ns/iter (± 9825) 1778107 ns/iter (± 13868) 1.00
css/visitor/compare/visit_mut_span_panic 1857520 ns/iter (± 5578) 1834048 ns/iter (± 13267) 1.01
css/visitor/compare/fold_span 2595607 ns/iter (± 10876) 2564357 ns/iter (± 18136) 1.01
css/visitor/compare/fold_span_panic 2800603 ns/iter (± 19116) 2763037 ns/iter (± 14066) 1.01
css/lexer/bootstrap_5_1_3 4488338 ns/iter (± 2412) 4438703 ns/iter (± 2189) 1.01
css/lexer/foundation_6_7_4 3790196 ns/iter (± 4896) 3738273 ns/iter (± 4204) 1.01
css/lexer/tailwind_3_1_1 721803 ns/iter (± 2307) 710928 ns/iter (± 535) 1.02
css/parser/bootstrap_5_1_3 20223160 ns/iter (± 33714) 19473584 ns/iter (± 70541) 1.04
css/parser/foundation_6_7_4 15867769 ns/iter (± 26062) 15399328 ns/iter (± 57691) 1.03
css/parser/tailwind_3_1_1 3085546 ns/iter (± 3969) 3007304 ns/iter (± 4382) 1.03
es/codegen/colors 734079 ns/iter (± 402547) 734251 ns/iter (± 401914) 1.00
es/codegen/large 3132293 ns/iter (± 1662586) 3132492 ns/iter (± 1663991) 1.00
es/codegen/with-parser/colors 44469 ns/iter (± 582) 44917 ns/iter (± 499) 0.99
es/codegen/with-parser/large 479495 ns/iter (± 1127) 488673 ns/iter (± 951) 0.98
es/minify/libraries/antd 1208221748 ns/iter (± 9438274) 1212143058 ns/iter (± 18735091) 1.00
es/minify/libraries/d3 245706691 ns/iter (± 1479692) 260128851 ns/iter (± 5193328) 0.94
es/minify/libraries/echarts 961976843 ns/iter (± 6485582) 991551187 ns/iter (± 17819553) 0.97
es/minify/libraries/jquery 74255114 ns/iter (± 400515) 76294274 ns/iter (± 694738) 0.97
es/minify/libraries/lodash 88535292 ns/iter (± 269280) 92696582 ns/iter (± 1497234) 0.96
es/minify/libraries/moment 43636918 ns/iter (± 141999) 44559853 ns/iter (± 208339) 0.98
es/minify/libraries/react 16055801 ns/iter (± 79220) 16456662 ns/iter (± 227070) 0.98
es/minify/libraries/terser 190502361 ns/iter (± 1100596) 201921654 ns/iter (± 4031874) 0.94
es/minify/libraries/three 332990818 ns/iter (± 1944729) 340642577 ns/iter (± 11202727) 0.98
es/minify/libraries/typescript 2355118667 ns/iter (± 18650795) 2440013963 ns/iter (± 44143971) 0.97
es/minify/libraries/victory 507695924 ns/iter (± 6840990) 509087649 ns/iter (± 16241699) 1.00
es/minify/libraries/vue 107766082 ns/iter (± 2339040) 110299035 ns/iter (± 1353696) 0.98
es/visitor/compare/clone 1938914 ns/iter (± 6630) 1937330 ns/iter (± 12183) 1.00
es/visitor/compare/visit_mut_span 2294681 ns/iter (± 5804) 2286769 ns/iter (± 5670) 1.00
es/visitor/compare/visit_mut_span_panic 2341029 ns/iter (± 9921) 2316402 ns/iter (± 5082) 1.01
es/visitor/compare/fold_span 3345061 ns/iter (± 9341) 3350333 ns/iter (± 4877) 1.00
es/visitor/compare/fold_span_panic 3477041 ns/iter (± 10955) 3484467 ns/iter (± 4688) 1.00
es/lexer/colors 12606 ns/iter (± 38) 12515 ns/iter (± 59) 1.01
es/lexer/angular 5987055 ns/iter (± 15176) 5969104 ns/iter (± 5278) 1.00
es/lexer/backbone 774959 ns/iter (± 2060) 778482 ns/iter (± 755) 1.00
es/lexer/jquery 4362268 ns/iter (± 2181) 4420305 ns/iter (± 5114) 0.99
es/lexer/jquery mobile 6690398 ns/iter (± 3901) 6736834 ns/iter (± 9251) 0.99
es/lexer/mootools 3469054 ns/iter (± 2156) 3480417 ns/iter (± 8424) 1.00
es/lexer/underscore 653014 ns/iter (± 718) 653920 ns/iter (± 1891) 1.00
es/lexer/three 20532852 ns/iter (± 12933) 20634588 ns/iter (± 13016) 1.00
es/lexer/yui 3718732 ns/iter (± 1727) 3763723 ns/iter (± 7135) 0.99
es/parser/colors 26591 ns/iter (± 80) 26277 ns/iter (± 80) 1.01
es/parser/angular 13313499 ns/iter (± 87890) 13404369 ns/iter (± 96217) 0.99
es/parser/backbone 1973553 ns/iter (± 9791) 1973587 ns/iter (± 8599) 1.00
es/parser/jquery 10769732 ns/iter (± 56008) 10778015 ns/iter (± 86825) 1.00
es/parser/jquery mobile 16558841 ns/iter (± 133293) 16510654 ns/iter (± 72769) 1.00
es/parser/mootools 8264353 ns/iter (± 17855) 8315206 ns/iter (± 39291) 0.99
es/parser/underscore 1697882 ns/iter (± 32782) 1693689 ns/iter (± 9952) 1.00
es/parser/three 47463386 ns/iter (± 322197) 47170230 ns/iter (± 883264) 1.01
es/parser/yui 8167088 ns/iter (± 33584) 8162711 ns/iter (± 57389) 1.00
es/preset-env/usage/builtin_type 139185 ns/iter (± 33031) 138372 ns/iter (± 32184) 1.01
es/preset-env/usage/property 16884 ns/iter (± 75) 17151 ns/iter (± 64) 0.98
es/resolver/typescript 89200349 ns/iter (± 1319658) 93621645 ns/iter (± 1809770) 0.95
es/fixer/typescript 65869682 ns/iter (± 337041) 66915321 ns/iter (± 322159) 0.98
es/hygiene/typescript 134848916 ns/iter (± 1718093) 139451635 ns/iter (± 2840523) 0.97
es/resolver_with_hygiene/typescript 248175965 ns/iter (± 2354553) 252104930 ns/iter (± 4064305) 0.98
es/visitor/base-perf/module_clone 60241 ns/iter (± 702) 62674 ns/iter (± 402) 0.96
es/visitor/base-perf/fold_empty 63765 ns/iter (± 278) 66419 ns/iter (± 372) 0.96
es/visitor/base-perf/fold_noop_impl_all 63612 ns/iter (± 135) 66989 ns/iter (± 586) 0.95
es/visitor/base-perf/fold_noop_impl_vec 63690 ns/iter (± 264) 66870 ns/iter (± 373) 0.95
es/visitor/base-perf/boxing_boxed_clone 59 ns/iter (± 0) 56 ns/iter (± 0) 1.05
es/visitor/base-perf/boxing_unboxed_clone 40 ns/iter (± 0) 40 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 106 ns/iter (± 0) 108 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_unboxed 75 ns/iter (± 0) 78 ns/iter (± 0) 0.96
es/visitor/base-perf/visit_empty 0 ns/iter (± 0) 0 ns/iter (± 0) NaN
es/visitor/base-perf/visit_contains_this 2520 ns/iter (± 16) 2535 ns/iter (± 13) 0.99
es/base/parallel/resolver/typescript 3829210873 ns/iter (± 309462116) 4505677139 ns/iter (± 257011180) 0.85
es/base/parallel/hygiene/typescript 1455946036 ns/iter (± 17405461) 1493234131 ns/iter (± 17856478) 0.98
misc/visitors/time-complexity/time 5 150 ns/iter (± 0) 136 ns/iter (± 0) 1.10
misc/visitors/time-complexity/time 10 453 ns/iter (± 16) 386 ns/iter (± 2) 1.17
misc/visitors/time-complexity/time 15 875 ns/iter (± 7) 675 ns/iter (± 4) 1.30
misc/visitors/time-complexity/time 20 1282 ns/iter (± 4) 1077 ns/iter (± 29) 1.19
misc/visitors/time-complexity/time 40 5001 ns/iter (± 2) 3554 ns/iter (± 17) 1.41
misc/visitors/time-complexity/time 60 10679 ns/iter (± 39) 7344 ns/iter (± 12) 1.45
es/full-target/es2016 234046 ns/iter (± 568) 239000 ns/iter (± 671) 0.98
es/full-target/es2017 220931 ns/iter (± 1523) 227041 ns/iter (± 971) 0.97
es/full-target/es2018 209878 ns/iter (± 625) 215371 ns/iter (± 456) 0.97
es2020_nullish_coalescing 68232 ns/iter (± 381) 71601 ns/iter (± 390) 0.95
es2020_optional_chaining 78334 ns/iter (± 341) 78756 ns/iter (± 237) 0.99
es2022_class_properties 117782 ns/iter (± 3625) 119031 ns/iter (± 636) 0.99
es2018_object_rest_spread 72935 ns/iter (± 190) 74758 ns/iter (± 253) 0.98
es2019_optional_catch_binding 61249 ns/iter (± 160) 64200 ns/iter (± 175) 0.95
es2017_async_to_generator 60463 ns/iter (± 163) 63469 ns/iter (± 401) 0.95
es2016_exponentiation 66310 ns/iter (± 289) 69237 ns/iter (± 266) 0.96
es2015_arrow 69411 ns/iter (± 223) 71201 ns/iter (± 261) 0.97
es2015_block_scoped_fn 65653 ns/iter (± 288) 68818 ns/iter (± 215) 0.95
es2015_block_scoping 121782 ns/iter (± 555) 120380 ns/iter (± 698) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.