Skip to content

Commit

Permalink
fix(es/minifier): Do not reuse identifier used for import bindings (#…
Browse files Browse the repository at this point in the history
…7639)

**Related issue:**

 - Closes #7634.
  • Loading branch information
kdy1 committed Jul 18, 2023
1 parent c31846d commit a65be14
Show file tree
Hide file tree
Showing 25 changed files with 476 additions and 382 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(e) {
return e.theme;
export var selectThemeObject = function(n) {
return n.theme;
};
export function saveTheme(t) {
var o, s, n;
export function saveTheme(n) {
var c, i, m;
return e(this, function(e) {
switch(e.label){
case 0:
return o = t.type, [
return c = n.type, [
4,
r(selectThemeObject)
];
case 1:
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")), [
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")), [
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(ClassName) {
field: /*#__PURE__*/ function(ClassName1) {
"use strict";
_inherits(ClassName1, ClassName);
function ClassName1() {
return ClassName.call(this);
_inherits(ClassName2, ClassName1);
function ClassName2() {
return ClassName1.call(this);
}
return ClassName1;
return ClassName2;
}(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 @@ -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(Foo) {
var Bar = /*#__PURE__*/ function(Foo1) {
"use strict";
_inherits(Bar, Foo);
_inherits(Bar, Foo1);
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 @@ -22,9 +22,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";
(function(Foo) {
(function(Foo1) {
"use strict";
_inherits(Bar, Foo);
_inherits(Bar, Foo1);
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 @@ -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(Fab) {
var Bar = /*#__PURE__*/ function(Fab1) {
"use strict";
_inherits(Bar, Fab);
_inherits(Bar, Fab1);
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 @@ -19,9 +19,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 = function(Fab) {
var Bar = function(Fab1) {
"use strict";
_inherits(Bar, Fab);
_inherits(Bar, Fab1);
var _super = _create_super(Bar);
function Bar() {
var _this;
Expand Down

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.

20 changes: 10 additions & 10 deletions crates/swc/tests/vercel/full/d3-color/1/output/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@ import i, { extend as h } from "./define.js";
import { Color as e, rgbConvert as s, Rgb as r, darker as n, brighter as o } from "./color.js";
import { deg2rad as a, rad2deg as u } from "./math.js";
var l = -1.78277 * 0.29227 - 0.1347134789;
export default function c(i, h, e, n) {
export default function c(c, p, f, b) {
return 1 == arguments.length ? function(i) {
if (t(i, Cubehelix)) return new Cubehelix(i.h, i.s, i.l, i.opacity);
t(i, r) || (i = s(i));
var h = i.r / 255, e = i.g / 255, n = i.b / 255, o = (l * n + -1.7884503806 * h - 3.5172982438 * e) / (l + -1.7884503806 - 3.5172982438), a = n - o, c = -((1.97294 * (e - o) - -0.29227 * a) / 0.90649), p = Math.sqrt(c * c + a * a) / (1.97294 * o * (1 - o)), f = p ? Math.atan2(c, a) * u - 120 : NaN;
return new Cubehelix(f < 0 ? f + 360 : f, p, o, i.opacity);
}(i) : new Cubehelix(i, h, e, null == n ? 1 : n);
}(c) : new Cubehelix(c, p, f, null == b ? 1 : b);
}
export function Cubehelix(t, i, h, e) {
this.h = +t, this.s = +i, this.l = +h, this.opacity = +e;
export function Cubehelix(l, c, p, f) {
this.h = +l, this.s = +c, this.l = +p, this.opacity = +f;
}
i(Cubehelix, c, h(e, {
brighter: function(t) {
return t = null == t ? o : Math.pow(o, t), new Cubehelix(this.h, this.s, this.l * t, this.opacity);
brighter: function(l) {
return l = null == l ? o : Math.pow(o, l), new Cubehelix(this.h, this.s, this.l * l, this.opacity);
},
darker: function(t) {
return t = null == t ? n : Math.pow(n, t), new Cubehelix(this.h, this.s, this.l * t, this.opacity);
darker: function(l) {
return l = null == l ? n : Math.pow(n, l), new Cubehelix(this.h, this.s, this.l * l, this.opacity);
},
rgb: function() {
var t = isNaN(this.h) ? 0 : (this.h + 120) * a, i = +this.l, h = isNaN(this.s) ? 0 : this.s * i * (1 - i), e = Math.cos(t), s = Math.sin(t);
return new r(255 * (i + h * (-0.14861 * e + 1.78277 * s)), 255 * (i + h * (-0.29227 * e + -0.90649 * s)), 255 * (i + h * (1.97294 * e)), this.opacity);
var l = isNaN(this.h) ? 0 : (this.h + 120) * a, c = +this.l, p = isNaN(this.s) ? 0 : this.s * c * (1 - c), f = Math.cos(l), b = Math.sin(l);
return new r(255 * (c + p * (-0.14861 * f + 1.78277 * b)), 255 * (c + p * (-0.29227 * f + -0.90649 * b)), 255 * (c + p * (1.97294 * f)), this.opacity);
}
}));

1 comment on commit a65be14

@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: a65be14 Previous: dc5135f Ratio
es/full/bugs-1 297124 ns/iter (± 7676) 281977 ns/iter (± 6075) 1.05
es/full/minify/libraries/antd 1336949943 ns/iter (± 14526777) 1302460793 ns/iter (± 11994149) 1.03
es/full/minify/libraries/d3 282001081 ns/iter (± 4605152) 278084716 ns/iter (± 3613109) 1.01
es/full/minify/libraries/echarts 1089899830 ns/iter (± 6763311) 1055356961 ns/iter (± 9848592) 1.03
es/full/minify/libraries/jquery 85421468 ns/iter (± 273065) 84775231 ns/iter (± 194041) 1.01
es/full/minify/libraries/lodash 99592083 ns/iter (± 362783) 98360936 ns/iter (± 309436) 1.01
es/full/minify/libraries/moment 49893551 ns/iter (± 94943) 49836590 ns/iter (± 595142) 1.00
es/full/minify/libraries/react 18134322 ns/iter (± 38602) 18035497 ns/iter (± 19549) 1.01
es/full/minify/libraries/terser 222224705 ns/iter (± 599001) 219369946 ns/iter (± 595098) 1.01
es/full/minify/libraries/three 392016652 ns/iter (± 6496372) 385419131 ns/iter (± 7751326) 1.02
es/full/minify/libraries/typescript 2749811866 ns/iter (± 14113779) 2654517031 ns/iter (± 8992397) 1.04
es/full/minify/libraries/victory 574689436 ns/iter (± 7008306) 561783431 ns/iter (± 5009658) 1.02
es/full/minify/libraries/vue 122133241 ns/iter (± 408343) 120780400 ns/iter (± 381262) 1.01
es/full/codegen/es3 34851 ns/iter (± 193) 34291 ns/iter (± 173) 1.02
es/full/codegen/es5 34732 ns/iter (± 83) 34214 ns/iter (± 76) 1.02
es/full/codegen/es2015 34811 ns/iter (± 80) 34145 ns/iter (± 79) 1.02
es/full/codegen/es2016 34734 ns/iter (± 88) 34221 ns/iter (± 55) 1.01
es/full/codegen/es2017 34688 ns/iter (± 109) 34254 ns/iter (± 53) 1.01
es/full/codegen/es2018 34737 ns/iter (± 52) 34236 ns/iter (± 165) 1.01
es/full/codegen/es2019 34766 ns/iter (± 79) 34188 ns/iter (± 58) 1.02
es/full/codegen/es2020 34723 ns/iter (± 93) 34243 ns/iter (± 70) 1.01
es/full/all/es3 172618779 ns/iter (± 831278) 173177968 ns/iter (± 1024873) 1.00
es/full/all/es5 165168777 ns/iter (± 1115587) 165499022 ns/iter (± 544741) 1.00
es/full/all/es2015 124924383 ns/iter (± 1043884) 123190913 ns/iter (± 628578) 1.01
es/full/all/es2016 123523858 ns/iter (± 595234) 122109104 ns/iter (± 835904) 1.01
es/full/all/es2017 122593672 ns/iter (± 500197) 122269176 ns/iter (± 845179) 1.00
es/full/all/es2018 121292351 ns/iter (± 440065) 119262491 ns/iter (± 704508) 1.02
es/full/all/es2019 119675867 ns/iter (± 373341) 119142906 ns/iter (± 699161) 1.00
es/full/all/es2020 115911013 ns/iter (± 758379) 115087735 ns/iter (± 489936) 1.01
es/full/parser 531214 ns/iter (± 5551) 532324 ns/iter (± 5537) 1.00
es/full/base/fixer 17186 ns/iter (± 27) 17843 ns/iter (± 102) 0.96
es/full/base/resolver_and_hygiene 83223 ns/iter (± 157) 83419 ns/iter (± 341) 1.00
serialization of serde 298 ns/iter (± 0) 313 ns/iter (± 0) 0.95
css/minify/libraries/bootstrap 29740680 ns/iter (± 103715) 28804494 ns/iter (± 60180) 1.03
css/visitor/compare/clone 1718124 ns/iter (± 3609) 1705066 ns/iter (± 13033) 1.01
css/visitor/compare/visit_mut_span 1830728 ns/iter (± 10294) 1852360 ns/iter (± 10341) 0.99
css/visitor/compare/visit_mut_span_panic 1836975 ns/iter (± 6158) 1901649 ns/iter (± 10262) 0.97
css/visitor/compare/fold_span 2576859 ns/iter (± 10977) 2551860 ns/iter (± 8799) 1.01
css/visitor/compare/fold_span_panic 2751502 ns/iter (± 8888) 2738384 ns/iter (± 16756) 1.00
css/lexer/bootstrap_5_1_3 4556149 ns/iter (± 13773) 4442905 ns/iter (± 13502) 1.03
css/lexer/foundation_6_7_4 3841718 ns/iter (± 1530) 3741171 ns/iter (± 4303) 1.03
css/lexer/tailwind_3_1_1 730333 ns/iter (± 667) 712350 ns/iter (± 584) 1.03
css/parser/bootstrap_5_1_3 19449947 ns/iter (± 166480) 19463892 ns/iter (± 106192) 1.00
css/parser/foundation_6_7_4 15536863 ns/iter (± 17992) 15488167 ns/iter (± 58155) 1.00
css/parser/tailwind_3_1_1 2996500 ns/iter (± 4833) 2931215 ns/iter (± 3115) 1.02
es/codegen/colors 733107 ns/iter (± 400973) 731943 ns/iter (± 400350) 1.00
es/codegen/large 3171350 ns/iter (± 1679725) 3130621 ns/iter (± 1665913) 1.01
es/codegen/with-parser/colors 44445 ns/iter (± 555) 44940 ns/iter (± 525) 0.99
es/codegen/with-parser/large 485695 ns/iter (± 1237) 490788 ns/iter (± 980) 0.99
es/minify/libraries/antd 1179648761 ns/iter (± 15486445) 1143400735 ns/iter (± 11674177) 1.03
es/minify/libraries/d3 243428824 ns/iter (± 2580873) 239332797 ns/iter (± 624056) 1.02
es/minify/libraries/echarts 939633960 ns/iter (± 9370687) 905693349 ns/iter (± 7012526) 1.04
es/minify/libraries/jquery 74695425 ns/iter (± 237214) 73297861 ns/iter (± 86797) 1.02
es/minify/libraries/lodash 88886675 ns/iter (± 171053) 87761159 ns/iter (± 130020) 1.01
es/minify/libraries/moment 44013840 ns/iter (± 163003) 43189962 ns/iter (± 78891) 1.02
es/minify/libraries/react 16118564 ns/iter (± 62866) 15941658 ns/iter (± 38122) 1.01
es/minify/libraries/terser 189217888 ns/iter (± 1177406) 187207423 ns/iter (± 335870) 1.01
es/minify/libraries/three 326264005 ns/iter (± 2412983) 322008389 ns/iter (± 2178351) 1.01
es/minify/libraries/typescript 2352384377 ns/iter (± 34213307) 2281771213 ns/iter (± 13594038) 1.03
es/minify/libraries/victory 485857463 ns/iter (± 3554429) 468817992 ns/iter (± 2661355) 1.04
es/minify/libraries/vue 108508160 ns/iter (± 261941) 106102841 ns/iter (± 160062) 1.02
es/visitor/compare/clone 1966175 ns/iter (± 8778) 1978670 ns/iter (± 3361) 0.99
es/visitor/compare/visit_mut_span 2321474 ns/iter (± 5717) 2312064 ns/iter (± 3783) 1.00
es/visitor/compare/visit_mut_span_panic 2318816 ns/iter (± 3573) 2349628 ns/iter (± 4514) 0.99
es/visitor/compare/fold_span 3397014 ns/iter (± 5297) 3408651 ns/iter (± 5603) 1.00
es/visitor/compare/fold_span_panic 3486894 ns/iter (± 7509) 3547587 ns/iter (± 7777) 0.98
es/lexer/colors 12467 ns/iter (± 30) 12636 ns/iter (± 51) 0.99
es/lexer/angular 6004613 ns/iter (± 10050) 6015499 ns/iter (± 22608) 1.00
es/lexer/backbone 787985 ns/iter (± 780) 787252 ns/iter (± 1002) 1.00
es/lexer/jquery 4413576 ns/iter (± 9943) 4407667 ns/iter (± 2946) 1.00
es/lexer/jquery mobile 6736980 ns/iter (± 6704) 6805455 ns/iter (± 9032) 0.99
es/lexer/mootools 3498086 ns/iter (± 4408) 3526825 ns/iter (± 4438) 0.99
es/lexer/underscore 658056 ns/iter (± 917) 656173 ns/iter (± 696) 1.00
es/lexer/three 20680760 ns/iter (± 13829) 20975427 ns/iter (± 51179) 0.99
es/lexer/yui 3773947 ns/iter (± 3757) 3779767 ns/iter (± 1914) 1.00
es/parser/colors 27315 ns/iter (± 81) 26490 ns/iter (± 86) 1.03
es/parser/angular 13329654 ns/iter (± 79111) 13408797 ns/iter (± 65476) 0.99
es/parser/backbone 1978188 ns/iter (± 12865) 1992526 ns/iter (± 12096) 0.99
es/parser/jquery 10749563 ns/iter (± 35451) 10824544 ns/iter (± 53231) 0.99
es/parser/jquery mobile 16598170 ns/iter (± 114569) 16629803 ns/iter (± 54134) 1.00
es/parser/mootools 8269966 ns/iter (± 48494) 8339260 ns/iter (± 22924) 0.99
es/parser/underscore 1699562 ns/iter (± 9571) 1704953 ns/iter (± 11750) 1.00
es/parser/three 46174695 ns/iter (± 394517) 46165833 ns/iter (± 314244) 1.00
es/parser/yui 8178124 ns/iter (± 21979) 8236734 ns/iter (± 59990) 0.99
es/preset-env/usage/builtin_type 137808 ns/iter (± 32809) 137269 ns/iter (± 32108) 1.00
es/preset-env/usage/property 16874 ns/iter (± 90) 16742 ns/iter (± 57) 1.01
es/resolver/typescript 90354266 ns/iter (± 668978) 89098224 ns/iter (± 1045247) 1.01
es/fixer/typescript 65147188 ns/iter (± 494993) 63969142 ns/iter (± 1341635) 1.02
es/hygiene/typescript 137393768 ns/iter (± 1239201) 130747449 ns/iter (± 687809) 1.05
es/resolver_with_hygiene/typescript 247870757 ns/iter (± 1948370) 244939298 ns/iter (± 851876) 1.01
es/visitor/base-perf/module_clone 59608 ns/iter (± 271) 59977 ns/iter (± 224) 0.99
es/visitor/base-perf/fold_empty 63907 ns/iter (± 305) 63675 ns/iter (± 637) 1.00
es/visitor/base-perf/fold_noop_impl_all 63662 ns/iter (± 487) 63602 ns/iter (± 688) 1.00
es/visitor/base-perf/fold_noop_impl_vec 63730 ns/iter (± 326) 64352 ns/iter (± 184) 0.99
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 59 ns/iter (± 0) 0.95
es/visitor/base-perf/boxing_unboxed_clone 40 ns/iter (± 0) 39 ns/iter (± 0) 1.03
es/visitor/base-perf/boxing_boxed 109 ns/iter (± 0) 107 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed 77 ns/iter (± 0) 75 ns/iter (± 0) 1.03
es/visitor/base-perf/visit_empty 0 ns/iter (± 0) 0 ns/iter (± 0) NaN
es/visitor/base-perf/visit_contains_this 2506 ns/iter (± 8) 2509 ns/iter (± 9) 1.00
es/base/parallel/resolver/typescript 4524246485 ns/iter (± 287325995) 4412557942 ns/iter (± 252848349) 1.03
es/base/parallel/hygiene/typescript 1547447578 ns/iter (± 42511925) 1456572473 ns/iter (± 12495365) 1.06
misc/visitors/time-complexity/time 5 121 ns/iter (± 0) 137 ns/iter (± 0) 0.88
misc/visitors/time-complexity/time 10 394 ns/iter (± 2) 363 ns/iter (± 5) 1.09
misc/visitors/time-complexity/time 15 725 ns/iter (± 7) 663 ns/iter (± 3) 1.09
misc/visitors/time-complexity/time 20 1040 ns/iter (± 3) 1179 ns/iter (± 2) 0.88
misc/visitors/time-complexity/time 40 3485 ns/iter (± 8) 3501 ns/iter (± 18) 1.00
misc/visitors/time-complexity/time 60 7220 ns/iter (± 14) 8911 ns/iter (± 4) 0.81
es/full-target/es2016 238029 ns/iter (± 835) 240202 ns/iter (± 554) 0.99
es/full-target/es2017 224839 ns/iter (± 658) 228277 ns/iter (± 612) 0.98
es/full-target/es2018 212755 ns/iter (± 384) 215509 ns/iter (± 808) 0.99
es2020_nullish_coalescing 71308 ns/iter (± 514) 71278 ns/iter (± 522) 1.00
es2020_optional_chaining 82123 ns/iter (± 312) 82544 ns/iter (± 280) 0.99
es2022_class_properties 120049 ns/iter (± 301) 120383 ns/iter (± 407) 1.00
es2018_object_rest_spread 74869 ns/iter (± 187) 75218 ns/iter (± 280) 1.00
es2019_optional_catch_binding 64132 ns/iter (± 230) 64259 ns/iter (± 196) 1.00
es2017_async_to_generator 62852 ns/iter (± 886) 64382 ns/iter (± 223) 0.98
es2016_exponentiation 68134 ns/iter (± 222) 69969 ns/iter (± 214) 0.97
es2015_arrow 71310 ns/iter (± 313) 72968 ns/iter (± 185) 0.98
es2015_block_scoped_fn 67812 ns/iter (± 208) 69536 ns/iter (± 353) 0.98
es2015_block_scoping 121762 ns/iter (± 422) 124358 ns/iter (± 444) 0.98

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

Please sign in to comment.