Skip to content

Commit

Permalink
refactor(es/compat): Remove usage of box_patterns (#7613)
Browse files Browse the repository at this point in the history
  • Loading branch information
dsherret committed Jul 3, 2023
1 parent cba9868 commit 0a26066
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,19 @@ impl VisitMut for OptChaining {
*e = self.construct(data, false, self.c.no_document_all);
}

// delete foo?.bar -> foo == null ? true : delete foo.bar
Expr::Unary(UnaryExpr {
arg: box Expr::OptChain(v),
arg,
op: op!("delete"),
..
}) => {
let data = self.gather(v.take(), vec![]);
*e = self.construct(data, true, self.c.no_document_all);
match &mut **arg {
// delete foo?.bar -> foo == null ? true : delete foo.bar
Expr::OptChain(v) => {
let data = self.gather(v.take(), vec![]);
*e = self.construct(data, true, self.c.no_document_all);
}
_ => e.visit_mut_children_with(self),
}
}

e => e.visit_mut_children_with(self),
Expand Down
1 change: 0 additions & 1 deletion crates/swc_ecma_transforms_compat/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#![allow(clippy::vec_box)]
#![allow(clippy::boxed_local)]
#![allow(clippy::match_like_matches_macro)]
#![feature(box_patterns)]

pub use self::{
bugfixes::bugfixes, es2015::es2015, es2016::es2016, es2017::es2017, es2018::es2018,
Expand Down

2 comments on commit 0a26066

@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: 0a26066 Previous: 6850372 Ratio
es/full/bugs-1 359320 ns/iter (± 7526) 319606 ns/iter (± 11061) 1.12
es/full/minify/libraries/antd 1962626415 ns/iter (± 26476019) 1487421871 ns/iter (± 21970358) 1.32
es/full/minify/libraries/d3 396462371 ns/iter (± 5399578) 315332774 ns/iter (± 1318431) 1.26
es/full/minify/libraries/echarts 1521917201 ns/iter (± 14568815) 1204519126 ns/iter (± 11779301) 1.26
es/full/minify/libraries/jquery 112517553 ns/iter (± 619457) 96072159 ns/iter (± 249407) 1.17
es/full/minify/libraries/lodash 135548903 ns/iter (± 1091107) 113708243 ns/iter (± 276221) 1.19
es/full/minify/libraries/moment 65184752 ns/iter (± 789444) 56453497 ns/iter (± 245827) 1.15
es/full/minify/libraries/react 23339225 ns/iter (± 285289) 20230332 ns/iter (± 39409) 1.15
es/full/minify/libraries/terser 310109399 ns/iter (± 4187405) 246486216 ns/iter (± 1458266) 1.26
es/full/minify/libraries/three 554647983 ns/iter (± 7509872) 436841704 ns/iter (± 2400359) 1.27
es/full/minify/libraries/typescript 3722547808 ns/iter (± 18631199) 2976193578 ns/iter (± 15302949) 1.25
es/full/minify/libraries/victory 853067767 ns/iter (± 15801867) 645956633 ns/iter (± 4852461) 1.32
es/full/minify/libraries/vue 163910839 ns/iter (± 1708827) 138795766 ns/iter (± 4010764) 1.18
es/full/codegen/es3 42418 ns/iter (± 93) 35514 ns/iter (± 121) 1.19
es/full/codegen/es5 42569 ns/iter (± 44) 35595 ns/iter (± 324) 1.20
es/full/codegen/es2015 42588 ns/iter (± 64) 35519 ns/iter (± 73) 1.20
es/full/codegen/es2016 42517 ns/iter (± 75) 35872 ns/iter (± 109) 1.19
es/full/codegen/es2017 42557 ns/iter (± 35) 35971 ns/iter (± 90) 1.18
es/full/codegen/es2018 42579 ns/iter (± 57) 35793 ns/iter (± 62) 1.19
es/full/codegen/es2019 42576 ns/iter (± 86) 35831 ns/iter (± 84) 1.19
es/full/codegen/es2020 42574 ns/iter (± 39) 35576 ns/iter (± 86) 1.20
es/full/all/es3 213421453 ns/iter (± 3048496) 185604954 ns/iter (± 717111) 1.15
es/full/all/es5 204473113 ns/iter (± 2691775) 176539344 ns/iter (± 370649) 1.16
es/full/all/es2015 160827765 ns/iter (± 2488455) 132414743 ns/iter (± 626192) 1.21
es/full/all/es2016 159978869 ns/iter (± 3368385) 131549476 ns/iter (± 465315) 1.22
es/full/all/es2017 159397199 ns/iter (± 2736224) 131116887 ns/iter (± 390749) 1.22
es/full/all/es2018 159012240 ns/iter (± 2427836) 129044951 ns/iter (± 637528) 1.23
es/full/all/es2019 156933399 ns/iter (± 1429045) 127749772 ns/iter (± 386056) 1.23
es/full/all/es2020 150797464 ns/iter (± 2808982) 123631759 ns/iter (± 925418) 1.22
es/full/parser 648621 ns/iter (± 11285) 562169 ns/iter (± 7025) 1.15
es/full/base/fixer 24656 ns/iter (± 29) 18687 ns/iter (± 171) 1.32
es/full/base/resolver_and_hygiene 105875 ns/iter (± 166) 96903 ns/iter (± 225) 1.09
serialization of serde 271 ns/iter (± 0) 296 ns/iter (± 0) 0.92
css/minify/libraries/bootstrap 36984932 ns/iter (± 293572) 31013134 ns/iter (± 83054) 1.19
css/visitor/compare/clone 2349279 ns/iter (± 13602) 2129158 ns/iter (± 14906) 1.10
css/visitor/compare/visit_mut_span 2569608 ns/iter (± 7668) 2251441 ns/iter (± 16957) 1.14
css/visitor/compare/visit_mut_span_panic 2605549 ns/iter (± 5858) 2322416 ns/iter (± 5970) 1.12
css/visitor/compare/fold_span 3323964 ns/iter (± 16675) 3011796 ns/iter (± 20862) 1.10
css/visitor/compare/fold_span_panic 3467807 ns/iter (± 14475) 3209746 ns/iter (± 15199) 1.08
css/lexer/bootstrap_5_1_3 5632706 ns/iter (± 6342) 4688945 ns/iter (± 18162) 1.20
css/lexer/foundation_6_7_4 4753566 ns/iter (± 3164) 3963096 ns/iter (± 1523) 1.20
css/lexer/tailwind_3_1_1 901726 ns/iter (± 861) 755504 ns/iter (± 489) 1.19
css/parser/bootstrap_5_1_3 24401531 ns/iter (± 107269) 20443679 ns/iter (± 57054) 1.19
css/parser/foundation_6_7_4 19429440 ns/iter (± 59904) 16537735 ns/iter (± 16356) 1.17
css/parser/tailwind_3_1_1 3714657 ns/iter (± 4330) 3199810 ns/iter (± 2036) 1.16
es/codegen/colors 716760 ns/iter (± 391254) 734759 ns/iter (± 398009) 0.98
es/codegen/large 2925476 ns/iter (± 1523597) 2980746 ns/iter (± 1563999) 0.98
es/codegen/with-parser/colors 57189 ns/iter (± 436) 48858 ns/iter (± 252) 1.17
es/codegen/with-parser/large 579282 ns/iter (± 980) 522932 ns/iter (± 1565) 1.11
es/minify/libraries/antd 1726015562 ns/iter (± 24612081) 1297008954 ns/iter (± 11765725) 1.33
es/minify/libraries/d3 345521019 ns/iter (± 3915541) 280113756 ns/iter (± 1246219) 1.23
es/minify/libraries/echarts 1357623044 ns/iter (± 14090383) 1038128881 ns/iter (± 6405924) 1.31
es/minify/libraries/jquery 98822394 ns/iter (± 721675) 83947014 ns/iter (± 103329) 1.18
es/minify/libraries/lodash 124118935 ns/iter (± 1593664) 103036304 ns/iter (± 508208) 1.20
es/minify/libraries/moment 57614404 ns/iter (± 421970) 49529794 ns/iter (± 135102) 1.16
es/minify/libraries/react 20825032 ns/iter (± 126800) 18076046 ns/iter (± 56037) 1.15
es/minify/libraries/terser 262441531 ns/iter (± 4528475) 213416812 ns/iter (± 1060162) 1.23
es/minify/libraries/three 467220267 ns/iter (± 12284677) 373362419 ns/iter (± 31240543) 1.25
es/minify/libraries/typescript 3227327520 ns/iter (± 18441812) 2554768851 ns/iter (± 19062383) 1.26
es/minify/libraries/victory 724835777 ns/iter (± 18985009) 542881310 ns/iter (± 5297599) 1.34
es/minify/libraries/vue 146018771 ns/iter (± 639225) 123525386 ns/iter (± 301004) 1.18
es/visitor/compare/clone 2427594 ns/iter (± 7209) 2125766 ns/iter (± 4102) 1.14
es/visitor/compare/visit_mut_span 2779713 ns/iter (± 7031) 2471050 ns/iter (± 4990) 1.12
es/visitor/compare/visit_mut_span_panic 2846400 ns/iter (± 12031) 2506858 ns/iter (± 10687) 1.14
es/visitor/compare/fold_span 3929886 ns/iter (± 8079) 3542763 ns/iter (± 8493) 1.11
es/visitor/compare/fold_span_panic 4046621 ns/iter (± 34988) 3668076 ns/iter (± 12656) 1.10
es/lexer/colors 14825 ns/iter (± 14) 13413 ns/iter (± 31) 1.11
es/lexer/angular 7106592 ns/iter (± 2459) 6289320 ns/iter (± 23558) 1.13
es/lexer/backbone 862037 ns/iter (± 537) 840001 ns/iter (± 3609) 1.03
es/lexer/jquery 4834258 ns/iter (± 2293) 4711075 ns/iter (± 6536) 1.03
es/lexer/jquery mobile 7481481 ns/iter (± 7290) 7212271 ns/iter (± 4711) 1.04
es/lexer/mootools 3759891 ns/iter (± 1497) 3708319 ns/iter (± 1942) 1.01
es/lexer/underscore 714178 ns/iter (± 413) 696371 ns/iter (± 1393) 1.03
es/lexer/three 22650579 ns/iter (± 31995) 22045027 ns/iter (± 23254) 1.03
es/lexer/yui 4347547 ns/iter (± 5899) 4107391 ns/iter (± 36426) 1.06
es/parser/colors 32842 ns/iter (± 104) 29557 ns/iter (± 43) 1.11
es/parser/angular 16928946 ns/iter (± 303889) 14639686 ns/iter (± 66958) 1.16
es/parser/backbone 2380591 ns/iter (± 13612) 2202677 ns/iter (± 14257) 1.08
es/parser/jquery 13103385 ns/iter (± 94482) 11957504 ns/iter (± 58996) 1.10
es/parser/jquery mobile 20945633 ns/iter (± 497516) 18218506 ns/iter (± 39672) 1.15
es/parser/mootools 9841132 ns/iter (± 41230) 9180656 ns/iter (± 34240) 1.07
es/parser/underscore 2019735 ns/iter (± 9844) 1891273 ns/iter (± 62680) 1.07
es/parser/three 59812716 ns/iter (± 482457) 51099820 ns/iter (± 289301) 1.17
es/parser/yui 10086904 ns/iter (± 70735) 9201989 ns/iter (± 44796) 1.10
es/preset-env/usage/builtin_type 149230 ns/iter (± 33929) 145363 ns/iter (± 32907) 1.03
es/preset-env/usage/property 27658 ns/iter (± 100) 19023 ns/iter (± 129) 1.45
es/resolver/typescript 133540508 ns/iter (± 2765706) 94759008 ns/iter (± 1213689) 1.41
es/fixer/typescript 93852193 ns/iter (± 837592) 64318844 ns/iter (± 275933) 1.46
es/hygiene/typescript 211910952 ns/iter (± 2289408) 140268960 ns/iter (± 887766) 1.51
es/resolver_with_hygiene/typescript 428215963 ns/iter (± 2473377) 297936845 ns/iter (± 1837522) 1.44
es/visitor/base-perf/module_clone 85617 ns/iter (± 1327) 61504 ns/iter (± 302) 1.39
es/visitor/base-perf/fold_empty 95218 ns/iter (± 290) 64841 ns/iter (± 233) 1.47
es/visitor/base-perf/fold_noop_impl_all 95571 ns/iter (± 393) 64822 ns/iter (± 309) 1.47
es/visitor/base-perf/fold_noop_impl_vec 96246 ns/iter (± 513) 64875 ns/iter (± 227) 1.48
es/visitor/base-perf/boxing_boxed_clone 66 ns/iter (± 0) 56 ns/iter (± 0) 1.18
es/visitor/base-perf/boxing_unboxed_clone 44 ns/iter (± 0) 39 ns/iter (± 0) 1.13
es/visitor/base-perf/boxing_boxed 104 ns/iter (± 0) 115 ns/iter (± 0) 0.90
es/visitor/base-perf/boxing_unboxed 81 ns/iter (± 0) 81 ns/iter (± 0) 1
es/visitor/base-perf/visit_contains_this 3676 ns/iter (± 91) 2664 ns/iter (± 10) 1.38
es/base/parallel/resolver/typescript 7157185144 ns/iter (± 637702958) 4420754888 ns/iter (± 284024559) 1.62
es/base/parallel/hygiene/typescript 2399244782 ns/iter (± 26914818) 1564697986 ns/iter (± 20609563) 1.53
misc/visitors/time-complexity/time 5 111 ns/iter (± 0) 98 ns/iter (± 0) 1.13
misc/visitors/time-complexity/time 10 380 ns/iter (± 0) 257 ns/iter (± 0) 1.48
misc/visitors/time-complexity/time 15 756 ns/iter (± 1) 492 ns/iter (± 0) 1.54
misc/visitors/time-complexity/time 20 1421 ns/iter (± 2) 1025 ns/iter (± 2) 1.39
misc/visitors/time-complexity/time 40 7431 ns/iter (± 1) 3708 ns/iter (± 47) 2.00
misc/visitors/time-complexity/time 60 18814 ns/iter (± 16) 7727 ns/iter (± 32) 2.43
es/full-target/es2016 268993 ns/iter (± 529) 244521 ns/iter (± 1973) 1.10
es/full-target/es2017 260323 ns/iter (± 1058) 232876 ns/iter (± 2013) 1.12
es/full-target/es2018 248816 ns/iter (± 558) 221431 ns/iter (± 1199) 1.12
es2020_nullish_coalescing 98141 ns/iter (± 228) 71745 ns/iter (± 548) 1.37
es2020_optional_chaining 113686 ns/iter (± 368) 82558 ns/iter (± 308) 1.38
es2022_class_properties 157139 ns/iter (± 253) 122325 ns/iter (± 221) 1.28
es2018_object_rest_spread 99580 ns/iter (± 210) 75865 ns/iter (± 189) 1.31
es2019_optional_catch_binding 88577 ns/iter (± 223) 65418 ns/iter (± 173) 1.35
es2017_async_to_generator 89289 ns/iter (± 222) 64241 ns/iter (± 366) 1.39
es2016_exponentiation 95447 ns/iter (± 346) 69758 ns/iter (± 199) 1.37
es2015_arrow 98976 ns/iter (± 256) 72238 ns/iter (± 297) 1.37
es2015_block_scoped_fn 96844 ns/iter (± 226) 70138 ns/iter (± 169) 1.38
es2015_block_scoping 186168 ns/iter (± 354) 136022 ns/iter (± 362) 1.37

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: 0a26066 Previous: 6850372 Ratio
misc/visitors/time-complexity/time 40 7431 ns/iter (± 1) 3708 ns/iter (± 47) 2.00
misc/visitors/time-complexity/time 60 18814 ns/iter (± 16) 7727 ns/iter (± 32) 2.43

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

CC: @kdy1

Please sign in to comment.