Skip to content

Commit aa83584

Browse files
authoredJun 12, 2023
refactor(es/ast): Reimplement optional chaining (#7441)
**Related issue:** - Closes #7003. - Closes #7156.
1 parent d8f5158 commit aa83584

File tree

231 files changed

+7984
-8441
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

231 files changed

+7984
-8441
lines changed
 

‎crates/swc/src/builder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ impl<'a, 'b, P: swc_ecma_visit::Fold> PassBuilder<'a, 'b, P> {
237237
nullish_coalescing: compat::es2020::nullish_coalescing::Config {
238238
no_document_all: assumptions.no_document_all
239239
},
240-
optional_chaining: compat::es2020::opt_chaining::Config {
240+
optional_chaining: compat::es2020::optional_chaining::Config {
241241
no_document_all: assumptions.no_document_all,
242242
pure_getter: assumptions.pure_getters
243243
}

1 commit comments

Comments
 (1)

github-actions[bot] commented on Jun 12, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: aa83584 Previous: 8e933c8 Ratio
es/full/bugs-1 359294 ns/iter (± 5949) 356734 ns/iter (± 10512) 1.01
es/full/minify/libraries/antd 1927901500 ns/iter (± 20703065) 1965760348 ns/iter (± 14004631) 0.98
es/full/minify/libraries/d3 403282520 ns/iter (± 3491392) 408157250 ns/iter (± 3066049) 0.99
es/full/minify/libraries/echarts 1520686560 ns/iter (± 23854584) 1550684544 ns/iter (± 16108428) 0.98
es/full/minify/libraries/jquery 111388438 ns/iter (± 732215) 112990325 ns/iter (± 990479) 0.99
es/full/minify/libraries/lodash 135045298 ns/iter (± 908406) 137009485 ns/iter (± 1177718) 0.99
es/full/minify/libraries/moment 66105822 ns/iter (± 435294) 66154204 ns/iter (± 432242) 1.00
es/full/minify/libraries/react 23441437 ns/iter (± 151514) 23400048 ns/iter (± 224858) 1.00
es/full/minify/libraries/terser 306340258 ns/iter (± 3872685) 300686473 ns/iter (± 4618058) 1.02
es/full/minify/libraries/three 554829700 ns/iter (± 3163432) 537217720 ns/iter (± 7949077) 1.03
es/full/minify/libraries/typescript 3783017529 ns/iter (± 46213333) 3754049616 ns/iter (± 70139983) 1.01
es/full/minify/libraries/victory 813631987 ns/iter (± 19427288) 813033247 ns/iter (± 23654028) 1.00
es/full/minify/libraries/vue 162195406 ns/iter (± 2777889) 160550214 ns/iter (± 1011425) 1.01
es/full/codegen/es3 40952 ns/iter (± 88) 40711 ns/iter (± 107) 1.01
es/full/codegen/es5 41106 ns/iter (± 262) 40863 ns/iter (± 59) 1.01
es/full/codegen/es2015 41044 ns/iter (± 78) 40731 ns/iter (± 42) 1.01
es/full/codegen/es2016 41046 ns/iter (± 71) 40718 ns/iter (± 98) 1.01
es/full/codegen/es2017 41048 ns/iter (± 92) 40635 ns/iter (± 107) 1.01
es/full/codegen/es2018 41124 ns/iter (± 62) 40663 ns/iter (± 97) 1.01
es/full/codegen/es2019 41065 ns/iter (± 37) 40705 ns/iter (± 73) 1.01
es/full/codegen/es2020 41136 ns/iter (± 48) 40719 ns/iter (± 74) 1.01
es/full/all/es3 211602469 ns/iter (± 3208748) 209123503 ns/iter (± 1544617) 1.01
es/full/all/es5 199357938 ns/iter (± 2290952) 199675839 ns/iter (± 2757488) 1.00
es/full/all/es2015 158053527 ns/iter (± 2508246) 157302943 ns/iter (± 1839456) 1.00
es/full/all/es2016 157024835 ns/iter (± 2634793) 153033148 ns/iter (± 3594527) 1.03
es/full/all/es2017 155406512 ns/iter (± 1941962) 154539560 ns/iter (± 3003815) 1.01
es/full/all/es2018 153667132 ns/iter (± 2151060) 152007694 ns/iter (± 1004747) 1.01
es/full/all/es2019 154564965 ns/iter (± 1892514) 151018179 ns/iter (± 2463789) 1.02
es/full/all/es2020 145767895 ns/iter (± 2827757) 144655578 ns/iter (± 1524263) 1.01
es/full/parser 611408 ns/iter (± 12842) 600710 ns/iter (± 10250) 1.02
es/full/base/fixer 24627 ns/iter (± 39) 24618 ns/iter (± 38) 1.00
es/full/base/resolver_and_hygiene 104456 ns/iter (± 114) 107007 ns/iter (± 256) 0.98
serialization of serde 282 ns/iter (± 2) 282 ns/iter (± 0) 1
css/minify/libraries/bootstrap 37510483 ns/iter (± 228857) 37276764 ns/iter (± 176425) 1.01
css/visitor/compare/clone 2697521 ns/iter (± 61128) 2702902 ns/iter (± 71240) 1.00
css/visitor/compare/visit_mut_span 2968429 ns/iter (± 8934) 2966977 ns/iter (± 11751) 1.00
css/visitor/compare/visit_mut_span_panic 3040260 ns/iter (± 8472) 3003193 ns/iter (± 8862) 1.01
css/visitor/compare/fold_span 3756894 ns/iter (± 22013) 3757470 ns/iter (± 17796) 1.00
css/visitor/compare/fold_span_panic 3959964 ns/iter (± 34513) 3924238 ns/iter (± 28180) 1.01
css/lexer/bootstrap_5_1_3 5559090 ns/iter (± 34530) 5542207 ns/iter (± 4267) 1.00
css/lexer/foundation_6_7_4 4697623 ns/iter (± 4113) 4685770 ns/iter (± 3809) 1.00
css/lexer/tailwind_3_1_1 893726 ns/iter (± 1001) 885984 ns/iter (± 3703) 1.01
css/parser/bootstrap_5_1_3 24517091 ns/iter (± 192532) 23938083 ns/iter (± 73287) 1.02
css/parser/foundation_6_7_4 19359512 ns/iter (± 47053) 19106054 ns/iter (± 69809) 1.01
css/parser/tailwind_3_1_1 3723374 ns/iter (± 4166) 3700133 ns/iter (± 2889) 1.01
es/codegen/colors 723928 ns/iter (± 392829) 720604 ns/iter (± 391305) 1.00
es/codegen/large 3128445 ns/iter (± 1629519) 3105982 ns/iter (± 1620519) 1.01
es/codegen/with-parser/colors 57661 ns/iter (± 508) 57715 ns/iter (± 481) 1.00
es/codegen/with-parser/large 570846 ns/iter (± 988) 568495 ns/iter (± 2342) 1.00
es/minify/libraries/antd 1811619977 ns/iter (± 55715069) 1704416223 ns/iter (± 47016578) 1.06
es/minify/libraries/d3 363032435 ns/iter (± 5367565) 351170891 ns/iter (± 4923434) 1.03
es/minify/libraries/echarts 1347667350 ns/iter (± 11732748) 1311644627 ns/iter (± 9463121) 1.03
es/minify/libraries/jquery 98655281 ns/iter (± 1176786) 97584249 ns/iter (± 671844) 1.01
es/minify/libraries/lodash 123766432 ns/iter (± 1419470) 121847259 ns/iter (± 1071666) 1.02
es/minify/libraries/moment 58927521 ns/iter (± 376144) 58148030 ns/iter (± 602964) 1.01
es/minify/libraries/react 20934740 ns/iter (± 98496) 20791356 ns/iter (± 250592) 1.01
es/minify/libraries/terser 262302857 ns/iter (± 3048645) 261441239 ns/iter (± 6459216) 1.00
es/minify/libraries/three 474922665 ns/iter (± 5480620) 472471499 ns/iter (± 4762350) 1.01
es/minify/libraries/typescript 3268780849 ns/iter (± 36969915) 3218121710 ns/iter (± 39760280) 1.02
es/minify/libraries/victory 699803779 ns/iter (± 25206140) 748340047 ns/iter (± 24459829) 0.94
es/minify/libraries/vue 144315305 ns/iter (± 710631) 145442558 ns/iter (± 750286) 0.99
es/visitor/compare/clone 2717118 ns/iter (± 7808) 2550982 ns/iter (± 57110) 1.07
es/visitor/compare/visit_mut_span 3103571 ns/iter (± 7094) 3104764 ns/iter (± 3574) 1.00
es/visitor/compare/visit_mut_span_panic 3174242 ns/iter (± 7787) 3153867 ns/iter (± 8132) 1.01
es/visitor/compare/fold_span 4284137 ns/iter (± 8765) 4274023 ns/iter (± 15546) 1.00
es/visitor/compare/fold_span_panic 4425718 ns/iter (± 9610) 4378262 ns/iter (± 11900) 1.01
es/lexer/colors 14632 ns/iter (± 18) 14799 ns/iter (± 48) 0.99
es/lexer/angular 6938690 ns/iter (± 6011) 6937095 ns/iter (± 13309) 1.00
es/lexer/backbone 846102 ns/iter (± 1053) 847423 ns/iter (± 623) 1.00
es/lexer/jquery 4762889 ns/iter (± 3957) 4769402 ns/iter (± 60385) 1.00
es/lexer/jquery mobile 7369031 ns/iter (± 17673) 7378108 ns/iter (± 10109) 1.00
es/lexer/mootools 3734506 ns/iter (± 5152) 3738099 ns/iter (± 9320) 1.00
es/lexer/underscore 698061 ns/iter (± 1505) 700085 ns/iter (± 610) 1.00
es/lexer/three 22461732 ns/iter (± 21015) 22409983 ns/iter (± 32387) 1.00
es/lexer/yui 4299964 ns/iter (± 1954) 4279668 ns/iter (± 6267) 1.00
es/parser/colors 33525 ns/iter (± 89) 33923 ns/iter (± 77) 0.99
es/parser/angular 16947595 ns/iter (± 186333) 16929361 ns/iter (± 150089) 1.00
es/parser/backbone 2429716 ns/iter (± 11925) 2433825 ns/iter (± 12634) 1.00
es/parser/jquery 13304031 ns/iter (± 233351) 13291036 ns/iter (± 80028) 1.00
es/parser/jquery mobile 21673409 ns/iter (± 331836) 21790053 ns/iter (± 339120) 0.99
es/parser/mootools 10073288 ns/iter (± 28325) 10137160 ns/iter (± 46531) 0.99
es/parser/underscore 2071241 ns/iter (± 12110) 2077238 ns/iter (± 9887) 1.00
es/parser/three 60914739 ns/iter (± 561933) 61268174 ns/iter (± 649632) 0.99
es/parser/yui 10221097 ns/iter (± 69169) 10221908 ns/iter (± 65642) 1.00
es/preset-env/usage/builtin_type 154849 ns/iter (± 34402) 151126 ns/iter (± 33113) 1.02
es/preset-env/usage/property 29395 ns/iter (± 64) 29233 ns/iter (± 110) 1.01
es/resolver/typescript 141803038 ns/iter (± 2574590) 139674683 ns/iter (± 2826595) 1.02
es/fixer/typescript 97297573 ns/iter (± 5367957) 96779874 ns/iter (± 2699290) 1.01
es/hygiene/typescript 219756193 ns/iter (± 3077788) 214838947 ns/iter (± 5560512) 1.02
es/resolver_with_hygiene/typescript 435979339 ns/iter (± 4365102) 433768721 ns/iter (± 5152775) 1.01
es/visitor/base-perf/module_clone 84321 ns/iter (± 303) 83764 ns/iter (± 617) 1.01
es/visitor/base-perf/fold_empty 94180 ns/iter (± 458) 94276 ns/iter (± 351) 1.00
es/visitor/base-perf/fold_noop_impl_all 94175 ns/iter (± 377) 94033 ns/iter (± 644) 1.00
es/visitor/base-perf/fold_noop_impl_vec 94490 ns/iter (± 491) 94671 ns/iter (± 631) 1.00
es/visitor/base-perf/boxing_boxed_clone 61 ns/iter (± 0) 60 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed_clone 44 ns/iter (± 0) 45 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_boxed 113 ns/iter (± 6) 105 ns/iter (± 0) 1.08
es/visitor/base-perf/boxing_unboxed 82 ns/iter (± 0) 81 ns/iter (± 0) 1.01
es/visitor/base-perf/visit_contains_this 3424 ns/iter (± 44) 3424 ns/iter (± 47) 1
es/base/parallel/resolver/typescript 7416636769 ns/iter (± 418399096) 7092906499 ns/iter (± 297422578) 1.05
es/base/parallel/hygiene/typescript 2381030417 ns/iter (± 31505483) 2414701469 ns/iter (± 26664788) 0.99
misc/visitors/time-complexity/time 5 105 ns/iter (± 0) 105 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 351 ns/iter (± 7) 347 ns/iter (± 0) 1.01
misc/visitors/time-complexity/time 15 692 ns/iter (± 0) 693 ns/iter (± 15) 1.00
misc/visitors/time-complexity/time 20 1278 ns/iter (± 4) 1271 ns/iter (± 24) 1.01
misc/visitors/time-complexity/time 40 6810 ns/iter (± 65) 6991 ns/iter (± 12) 0.97
misc/visitors/time-complexity/time 60 17636 ns/iter (± 13) 17464 ns/iter (± 56) 1.01
es/full-target/es2016 269618 ns/iter (± 2372) 269399 ns/iter (± 684) 1.00
es/full-target/es2017 259951 ns/iter (± 417) 259503 ns/iter (± 513) 1.00
es/full-target/es2018 249088 ns/iter (± 299) 248738 ns/iter (± 425) 1.00
es2020_nullish_coalescing 98115 ns/iter (± 267) 97258 ns/iter (± 268) 1.01
es2020_optional_chaining 121110 ns/iter (± 586) 131635 ns/iter (± 267) 0.92
es2022_class_properties 155953 ns/iter (± 369) 157418 ns/iter (± 351) 0.99
es2018_object_rest_spread 99519 ns/iter (± 295) 99233 ns/iter (± 286) 1.00
es2019_optional_catch_binding 88371 ns/iter (± 228) 87554 ns/iter (± 172) 1.01
es2017_async_to_generator 89090 ns/iter (± 278) 88379 ns/iter (± 310) 1.01
es2016_exponentiation 95613 ns/iter (± 225) 95110 ns/iter (± 261) 1.01
es2015_arrow 98564 ns/iter (± 176) 97985 ns/iter (± 210) 1.01
es2015_block_scoped_fn 96011 ns/iter (± 325) 95982 ns/iter (± 154) 1.00
es2015_block_scoping 184122 ns/iter (± 266) 183980 ns/iter (± 272) 1.00

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

Please sign in to comment.