Skip to content

Commit 0a80e05

Browse files
authoredMar 31, 2023
fix(es/compat): Handle shorthand object prop while renaming (#7176)
**Related issue:** - Closes #7174.
1 parent a1b7e13 commit 0a80e05

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"jsc": {
3+
"parser": {
4+
"syntax": "typescript",
5+
"tsx": false
6+
},
7+
"loose": false,
8+
"minify": {
9+
"compress": false,
10+
"mangle": false
11+
}
12+
},
13+
"module": {
14+
"type": "es6"
15+
},
16+
"minify": false,
17+
"isModule": true,
18+
"env": {
19+
"targets": "chrome 44"
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const isBrowser = typeof window !== "undefined";
2+
3+
function test({
4+
window
5+
}) {
6+
create({ window })
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
var isBrowser = typeof window !== "undefined";
2+
function test(param) {
3+
var _$window = param.window;
4+
create({
5+
window: _$window
6+
});
7+
}

‎crates/swc_ecma_transforms_compat/src/es2015/block_scoping/operator.rs

+16
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,22 @@ impl VisitMut for Rename {
2626
}
2727
}
2828

29+
fn visit_mut_prop(&mut self, n: &mut Prop) {
30+
if let Prop::Shorthand(ident) = n {
31+
if let Some(id) = self.map.get(&ident.to_id()) {
32+
*n = KeyValueProp {
33+
key: PropName::Ident(ident.clone()),
34+
value: Box::new(Ident::new(id.0.clone(), ident.span.with_ctxt(id.1)).into()),
35+
}
36+
.into();
37+
}
38+
39+
return;
40+
}
41+
42+
n.visit_mut_children_with(self);
43+
}
44+
2945
fn visit_mut_member_prop(&mut self, n: &mut MemberProp) {
3046
if let MemberProp::Computed(n) = n {
3147
n.visit_mut_with(self);

1 commit comments

Comments
 (1)

github-actions[bot] commented on Mar 31, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: 0a80e05 Previous: 23fb8c5 Ratio
es/full/bugs-1 304361 ns/iter (± 19167) 293737 ns/iter (± 12006) 1.04
es/full/minify/libraries/antd 1651978368 ns/iter (± 9246062) 1467348958 ns/iter (± 21021114) 1.13
es/full/minify/libraries/d3 311218951 ns/iter (± 8226085) 281687139 ns/iter (± 5722852) 1.10
es/full/minify/libraries/echarts 1274092100 ns/iter (± 11628528) 1092316263 ns/iter (± 22563298) 1.17
es/full/minify/libraries/jquery 90952237 ns/iter (± 1088228) 86667351 ns/iter (± 557185) 1.05
es/full/minify/libraries/lodash 107058388 ns/iter (± 1132144) 101165870 ns/iter (± 1218798) 1.06
es/full/minify/libraries/moment 52646709 ns/iter (± 453435) 50294067 ns/iter (± 477791) 1.05
es/full/minify/libraries/react 19361842 ns/iter (± 211178) 18591157 ns/iter (± 123254) 1.04
es/full/minify/libraries/terser 249452731 ns/iter (± 1643678) 229216857 ns/iter (± 1927325) 1.09
es/full/minify/libraries/three 445003943 ns/iter (± 5963522) 398122032 ns/iter (± 5184361) 1.12
es/full/minify/libraries/typescript 3101678963 ns/iter (± 10060441) 2810404541 ns/iter (± 22267082) 1.10
es/full/minify/libraries/victory 676752763 ns/iter (± 14541117) 598273425 ns/iter (± 11597093) 1.13
es/full/minify/libraries/vue 133260183 ns/iter (± 1540371) 124943846 ns/iter (± 1295444) 1.07
es/full/codegen/es3 28986 ns/iter (± 71) 27454 ns/iter (± 189) 1.06
es/full/codegen/es5 29139 ns/iter (± 54) 28006 ns/iter (± 186) 1.04
es/full/codegen/es2015 29191 ns/iter (± 87) 27571 ns/iter (± 297) 1.06
es/full/codegen/es2016 29224 ns/iter (± 51) 27409 ns/iter (± 254) 1.07
es/full/codegen/es2017 29223 ns/iter (± 48) 27631 ns/iter (± 177) 1.06
es/full/codegen/es2018 29248 ns/iter (± 70) 27606 ns/iter (± 188) 1.06
es/full/codegen/es2019 29160 ns/iter (± 51) 27444 ns/iter (± 192) 1.06
es/full/codegen/es2020 29113 ns/iter (± 45) 27352 ns/iter (± 143) 1.06
es/full/all/es3 182423293 ns/iter (± 1807825) 179147409 ns/iter (± 2724644) 1.02
es/full/all/es5 174369860 ns/iter (± 1960084) 173643822 ns/iter (± 3038060) 1.00
es/full/all/es2015 135997897 ns/iter (± 1236314) 130834299 ns/iter (± 2532076) 1.04
es/full/all/es2016 133741782 ns/iter (± 2888304) 129410769 ns/iter (± 1391938) 1.03
es/full/all/es2017 131209917 ns/iter (± 1523341) 126809517 ns/iter (± 1510682) 1.03
es/full/all/es2018 126527009 ns/iter (± 974435) 123274994 ns/iter (± 1290563) 1.03
es/full/all/es2019 124689905 ns/iter (± 1879327) 121782056 ns/iter (± 1054058) 1.02
es/full/all/es2020 118512690 ns/iter (± 983669) 116327599 ns/iter (± 923075) 1.02
es/full/parser 520086 ns/iter (± 8995) 498502 ns/iter (± 7683) 1.04
es/full/base/fixer 22891 ns/iter (± 30) 23356 ns/iter (± 179) 0.98
es/full/base/resolver_and_hygiene 85605 ns/iter (± 477) 81787 ns/iter (± 585) 1.05
serialization of serde 123 ns/iter (± 0) 119 ns/iter (± 2) 1.03
css/minify/libraries/bootstrap 28240458 ns/iter (± 115012) 26949968 ns/iter (± 298881) 1.05
css/visitor/compare/clone 2143556 ns/iter (± 23912) 2053791 ns/iter (± 23138) 1.04
css/visitor/compare/visit_mut_span 2326105 ns/iter (± 8569) 2259162 ns/iter (± 29669) 1.03
css/visitor/compare/visit_mut_span_panic 2367427 ns/iter (± 19555) 2329138 ns/iter (± 11996) 1.02
css/visitor/compare/fold_span 3082231 ns/iter (± 13442) 2961247 ns/iter (± 42737) 1.04
css/visitor/compare/fold_span_panic 3260383 ns/iter (± 10624) 3142937 ns/iter (± 26157) 1.04
css/lexer/bootstrap_5_1_3 5121017 ns/iter (± 32180) 5051710 ns/iter (± 46936) 1.01
css/lexer/foundation_6_7_4 4315335 ns/iter (± 1229) 4235611 ns/iter (± 28129) 1.02
css/lexer/tailwind_3_1_1 821099 ns/iter (± 224) 793568 ns/iter (± 4593) 1.03
css/parser/bootstrap_5_1_3 21147950 ns/iter (± 88397) 20061035 ns/iter (± 156867) 1.05
css/parser/foundation_6_7_4 16806520 ns/iter (± 64822) 15960424 ns/iter (± 84637) 1.05
css/parser/tailwind_3_1_1 3213171 ns/iter (± 2996) 3109506 ns/iter (± 21713) 1.03
es/codegen/colors 325600 ns/iter (± 184523) 317439 ns/iter (± 180715) 1.03
es/codegen/large 1095367 ns/iter (± 559899) 1191768 ns/iter (± 616978) 0.92
es/codegen/with-parser/colors 47601 ns/iter (± 128) 46147 ns/iter (± 387) 1.03
es/codegen/with-parser/large 506231 ns/iter (± 1221) 489982 ns/iter (± 4473) 1.03
es/minify/libraries/antd 1479031547 ns/iter (± 17973237) 1244742222 ns/iter (± 22999900) 1.19
es/minify/libraries/d3 262219346 ns/iter (± 2951945) 240478029 ns/iter (± 2490936) 1.09
es/minify/libraries/echarts 1104101534 ns/iter (± 8917877) 967658528 ns/iter (± 16397593) 1.14
es/minify/libraries/jquery 80070364 ns/iter (± 343534) 76109712 ns/iter (± 792885) 1.05
es/minify/libraries/lodash 96159107 ns/iter (± 570937) 93444141 ns/iter (± 984097) 1.03
es/minify/libraries/moment 46233470 ns/iter (± 229105) 44518841 ns/iter (± 348613) 1.04
es/minify/libraries/react 17169437 ns/iter (± 99474) 16679166 ns/iter (± 113963) 1.03
es/minify/libraries/terser 212604646 ns/iter (± 1238902) 196120544 ns/iter (± 2701501) 1.08
es/minify/libraries/three 373057124 ns/iter (± 4490644) 329198603 ns/iter (± 3409965) 1.13
es/minify/libraries/typescript 2650507481 ns/iter (± 16784007) 2380015024 ns/iter (± 18674618) 1.11
es/minify/libraries/victory 598373746 ns/iter (± 7860664) 498687229 ns/iter (± 5108079) 1.20
es/minify/libraries/vue 116651295 ns/iter (± 918743) 111231098 ns/iter (± 1399187) 1.05
es/visitor/compare/clone 2317671 ns/iter (± 11260) 2295209 ns/iter (± 16896) 1.01
es/visitor/compare/visit_mut_span 2702234 ns/iter (± 6086) 2678885 ns/iter (± 23035) 1.01
es/visitor/compare/visit_mut_span_panic 2747878 ns/iter (± 8288) 2662789 ns/iter (± 40529) 1.03
es/visitor/compare/fold_span 3822366 ns/iter (± 12174) 3742449 ns/iter (± 33250) 1.02
es/visitor/compare/fold_span_panic 3944994 ns/iter (± 10985) 3873100 ns/iter (± 20570) 1.02
es/lexer/colors 12991 ns/iter (± 54) 12694 ns/iter (± 50) 1.02
es/lexer/angular 6312159 ns/iter (± 5395) 6302768 ns/iter (± 59361) 1.00
es/lexer/backbone 774308 ns/iter (± 1188) 777480 ns/iter (± 5118) 1.00
es/lexer/jquery 4355516 ns/iter (± 821) 4399174 ns/iter (± 32677) 0.99
es/lexer/jquery mobile 6779305 ns/iter (± 2369) 6918122 ns/iter (± 5168) 0.98
es/lexer/mootools 3417509 ns/iter (± 118472) 3455060 ns/iter (± 30703) 0.99
es/lexer/underscore 643162 ns/iter (± 129) 650594 ns/iter (± 1611) 0.99
es/lexer/three 20567230 ns/iter (± 21286) 20493643 ns/iter (± 257692) 1.00
es/lexer/yui 3807599 ns/iter (± 1593) 3734099 ns/iter (± 29839) 1.02
es/parser/colors 28866 ns/iter (± 63) 28850 ns/iter (± 203) 1.00
es/parser/angular 15201772 ns/iter (± 128599) 14518674 ns/iter (± 126641) 1.05
es/parser/backbone 2148894 ns/iter (± 11288) 2076940 ns/iter (± 27134) 1.03
es/parser/jquery 11701952 ns/iter (± 127288) 11269029 ns/iter (± 93993) 1.04
es/parser/jquery mobile 18621035 ns/iter (± 210079) 17517300 ns/iter (± 123445) 1.06
es/parser/mootools 8919632 ns/iter (± 47207) 8629022 ns/iter (± 60505) 1.03
es/parser/underscore 1809627 ns/iter (± 9189) 1783947 ns/iter (± 12778) 1.01
es/parser/three 55051333 ns/iter (± 605476) 52204967 ns/iter (± 1765537) 1.05
es/parser/yui 9008981 ns/iter (± 62461) 8978863 ns/iter (± 115654) 1.00
es/preset-env/usage/builtin_type 146079 ns/iter (± 36943) 140493 ns/iter (± 32926) 1.04
es/preset-env/usage/property 20836 ns/iter (± 89) 19955 ns/iter (± 141) 1.04
es/resolver/typescript 119225286 ns/iter (± 2665498) 110972229 ns/iter (± 2036118) 1.07
es/fixer/typescript 86047701 ns/iter (± 2196643) 75931051 ns/iter (± 919029) 1.13
es/hygiene/typescript 183765960 ns/iter (± 1588192) 174164572 ns/iter (± 6310119) 1.06
es/resolver_with_hygiene/typescript 324829701 ns/iter (± 2891609) 296876338 ns/iter (± 1771816) 1.09
es/visitor/base-perf/module_clone 80559 ns/iter (± 437) 78877 ns/iter (± 484) 1.02
es/visitor/base-perf/fold_empty 90455 ns/iter (± 507) 88311 ns/iter (± 666) 1.02
es/visitor/base-perf/fold_noop_impl_all 90973 ns/iter (± 257) 88702 ns/iter (± 574) 1.03
es/visitor/base-perf/fold_noop_impl_vec 91408 ns/iter (± 316) 88535 ns/iter (± 1285) 1.03
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 54 ns/iter (± 0) 1.04
es/visitor/base-perf/boxing_unboxed_clone 41 ns/iter (± 0) 40 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_boxed 100 ns/iter (± 0) 98 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed 78 ns/iter (± 0) 75 ns/iter (± 0) 1.04
es/visitor/base-perf/visit_contains_this 3642 ns/iter (± 91) 3476 ns/iter (± 50) 1.05
es/base/parallel/resolver/typescript 6273993217 ns/iter (± 481088357) 5966551437 ns/iter (± 500758070) 1.05
es/base/parallel/hygiene/typescript 2215876152 ns/iter (± 23241776) 1998097077 ns/iter (± 23932898) 1.11
misc/visitors/time-complexity/time 5 102 ns/iter (± 0) 101 ns/iter (± 0) 1.01
misc/visitors/time-complexity/time 10 341 ns/iter (± 1) 335 ns/iter (± 10) 1.02
misc/visitors/time-complexity/time 15 659 ns/iter (± 0) 643 ns/iter (± 4) 1.02
misc/visitors/time-complexity/time 20 1248 ns/iter (± 11) 1191 ns/iter (± 9) 1.05
misc/visitors/time-complexity/time 40 6720 ns/iter (± 41) 6542 ns/iter (± 108) 1.03
misc/visitors/time-complexity/time 60 17077 ns/iter (± 55) 16667 ns/iter (± 75) 1.02
es/full-target/es2016 252821 ns/iter (± 301) 253632 ns/iter (± 474) 1.00
es/full-target/es2017 245724 ns/iter (± 350) 246861 ns/iter (± 1067) 1.00
es/full-target/es2018 234825 ns/iter (± 256) 232643 ns/iter (± 1512) 1.01
es2020_nullish_coalescing 93385 ns/iter (± 501) 93112 ns/iter (± 624) 1.00
es2020_optional_chaining 124266 ns/iter (± 276) 123934 ns/iter (± 310) 1.00
es2022_class_properties 148778 ns/iter (± 380) 148459 ns/iter (± 963) 1.00
es2018_object_rest_spread 96201 ns/iter (± 134) 96517 ns/iter (± 382) 1.00
es2019_optional_catch_binding 85319 ns/iter (± 279) 85749 ns/iter (± 288) 0.99
es2017_async_to_generator 85933 ns/iter (± 176) 85478 ns/iter (± 729) 1.01
es2016_exponentiation 90148 ns/iter (± 172) 89470 ns/iter (± 701) 1.01
es2015_arrow 93924 ns/iter (± 146) 93142 ns/iter (± 445) 1.01
es2015_block_scoped_fn 92234 ns/iter (± 171) 91023 ns/iter (± 516) 1.01
es2015_block_scoping 168822 ns/iter (± 187) 169496 ns/iter (± 669) 1.00

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

Please sign in to comment.