Skip to content

Commit bb6dde7

Browse files
authoredMar 12, 2023
fix(es/compat): Handle useDefineForClassFields: false (#7055)
**BREAKING CHANGE:** IMPORTANT NOTE: Users of decorators are recommended to configure `"useDefineForClassFields": false` to ensure that your code is properly transpiled. **Related issue:** - Closes #6985.
1 parent caaf29d commit bb6dde7

File tree

339 files changed

+5546
-2960
lines changed

Some content is hidden

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

339 files changed

+5546
-2960
lines changed
 

‎crates/swc/src/builder.rs

+4
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,10 @@ impl<'a, 'b, P: swc_ecma_visit::Fold> PassBuilder<'a, 'b, P> {
213213
feature_flag = enable_available_feature_from_es_version(self.target);
214214

215215
Either::Right(chain!(
216+
Optional::new(
217+
compat::class_fields_use_set::class_fields_use_set(assumptions.pure_getters),
218+
assumptions.set_public_class_fields,
219+
),
216220
Optional::new(
217221
compat::es2022::es2022(
218222
comments,

‎crates/swc/src/config/mod.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -363,10 +363,10 @@ impl Options {
363363
// variable management system based on the syntax contexts.
364364
if syntax.typescript() {
365365
assumptions.set_class_methods = !transform.use_define_for_class_fields.into_bool();
366-
assumptions.set_public_class_fields =
367-
!transform.use_define_for_class_fields.into_bool();
368366
}
369367

368+
assumptions.set_public_class_fields = !transform.use_define_for_class_fields.into_bool();
369+
370370
program.visit_mut_with(&mut resolver(
371371
unresolved_mark,
372372
top_level_mark,
@@ -669,7 +669,6 @@ impl Options {
669669
.into_bool(),
670670
ts_enum_is_readonly: assumptions.ts_enum_is_readonly,
671671
},
672-
use_define_for_class_fields: !assumptions.set_public_class_fields,
673672
import_export_assign_config,
674673
..Default::default()
675674
},
@@ -1478,7 +1477,7 @@ pub struct TransformConfig {
14781477
pub treat_const_enum_as_enum: BoolConfig<false>,
14791478

14801479
#[serde(default)]
1481-
pub use_define_for_class_fields: BoolConfig<false>,
1480+
pub use_define_for_class_fields: BoolConfig<true>,
14821481
}
14831482

14841483
#[derive(Debug, Default, Clone, Serialize, Deserialize, Merge)]

1 commit comments

Comments
 (1)

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

@github-actions[bot]

Benchmark

Benchmark suite Current: bb6dde7 Previous: 1b40689 Ratio
es/full/bugs-1 315281 ns/iter (± 14662) 296604 ns/iter (± 14529) 1.06
es/full/minify/libraries/antd 1714194692 ns/iter (± 22293870) 1593451818 ns/iter (± 26116371) 1.08
es/full/minify/libraries/d3 323524264 ns/iter (± 9436041) 305303639 ns/iter (± 4932345) 1.06
es/full/minify/libraries/echarts 1292399358 ns/iter (± 21033674) 1228399232 ns/iter (± 9055670) 1.05
es/full/minify/libraries/jquery 91638903 ns/iter (± 569968) 92354792 ns/iter (± 937296) 0.99
es/full/minify/libraries/lodash 106377340 ns/iter (± 871856) 107469386 ns/iter (± 1069180) 0.99
es/full/minify/libraries/moment 53208326 ns/iter (± 283797) 53423428 ns/iter (± 396518) 1.00
es/full/minify/libraries/react 19345059 ns/iter (± 214724) 19448157 ns/iter (± 308671) 0.99
es/full/minify/libraries/terser 258464660 ns/iter (± 4816017) 251750619 ns/iter (± 6359451) 1.03
es/full/minify/libraries/three 466113264 ns/iter (± 8484993) 447529496 ns/iter (± 8066398) 1.04
es/full/minify/libraries/typescript 3111647839 ns/iter (± 31024539) 2983032806 ns/iter (± 12690593) 1.04
es/full/minify/libraries/victory 693433480 ns/iter (± 11270344) 683388046 ns/iter (± 4469059) 1.01
es/full/minify/libraries/vue 130751582 ns/iter (± 1818109) 133700672 ns/iter (± 1988585) 0.98
es/full/codegen/es3 26330 ns/iter (± 66) 26099 ns/iter (± 78) 1.01
es/full/codegen/es5 26412 ns/iter (± 43) 26096 ns/iter (± 67) 1.01
es/full/codegen/es2015 26390 ns/iter (± 135) 26097 ns/iter (± 73) 1.01
es/full/codegen/es2016 26450 ns/iter (± 102) 26072 ns/iter (± 42) 1.01
es/full/codegen/es2017 26388 ns/iter (± 45) 26091 ns/iter (± 46) 1.01
es/full/codegen/es2018 26404 ns/iter (± 49) 26085 ns/iter (± 68) 1.01
es/full/codegen/es2019 26421 ns/iter (± 32) 26124 ns/iter (± 95) 1.01
es/full/codegen/es2020 26410 ns/iter (± 42) 26120 ns/iter (± 62) 1.01
es/full/all/es3 183860651 ns/iter (± 2305044) 172130370 ns/iter (± 3259976) 1.07
es/full/all/es5 172428245 ns/iter (± 1565648) 163547782 ns/iter (± 2464040) 1.05
es/full/all/es2015 137304078 ns/iter (± 1544626) 128966396 ns/iter (± 4110167) 1.06
es/full/all/es2016 134576836 ns/iter (± 2218062) 126444226 ns/iter (± 2326076) 1.06
es/full/all/es2017 133464120 ns/iter (± 1170931) 126467688 ns/iter (± 1488332) 1.06
es/full/all/es2018 129030947 ns/iter (± 2315202) 122406292 ns/iter (± 1603005) 1.05
es/full/all/es2019 127183522 ns/iter (± 2347428) 121730800 ns/iter (± 1620104) 1.04
es/full/all/es2020 121145263 ns/iter (± 2844788) 116944720 ns/iter (± 1244051) 1.04
es/full/parser 538583 ns/iter (± 10167) 536338 ns/iter (± 8279) 1.00
es/full/base/fixer 21946 ns/iter (± 58) 22800 ns/iter (± 56) 0.96
es/full/base/resolver_and_hygiene 83903 ns/iter (± 61) 82320 ns/iter (± 55) 1.02
serialization of ast node 126 ns/iter (± 0) 124 ns/iter (± 0) 1.02
serialization of serde 128 ns/iter (± 0) 126 ns/iter (± 0) 1.02
css/minify/libraries/bootstrap 29141525 ns/iter (± 325635) 28388803 ns/iter (± 163326) 1.03
css/visitor/compare/clone 2112440 ns/iter (± 13232) 2101409 ns/iter (± 20543) 1.01
css/visitor/compare/visit_mut_span 2296773 ns/iter (± 5505) 2344361 ns/iter (± 8496) 0.98
css/visitor/compare/visit_mut_span_panic 2352143 ns/iter (± 15518) 2388763 ns/iter (± 5009) 0.98
css/visitor/compare/fold_span 3078168 ns/iter (± 34435) 3111604 ns/iter (± 24159) 0.99
css/visitor/compare/fold_span_panic 3208712 ns/iter (± 25973) 3223335 ns/iter (± 16979) 1.00
css/lexer/bootstrap_5_1_3 5166986 ns/iter (± 5967) 5147071 ns/iter (± 9705) 1.00
css/lexer/foundation_6_7_4 4352314 ns/iter (± 2695) 4329932 ns/iter (± 50508) 1.01
css/lexer/tailwind_3_1_1 826327 ns/iter (± 1276) 821923 ns/iter (± 212) 1.01
css/parser/bootstrap_5_1_3 22199167 ns/iter (± 197964) 21911704 ns/iter (± 135080) 1.01
css/parser/foundation_6_7_4 17438292 ns/iter (± 70533) 17392512 ns/iter (± 80077) 1.00
css/parser/tailwind_3_1_1 3290929 ns/iter (± 7133) 3307071 ns/iter (± 2875) 1.00
es/codegen/colors 326284 ns/iter (± 182938) 360236 ns/iter (± 196773) 0.91
es/codegen/large 2325156 ns/iter (± 1511439) 1233825 ns/iter (± 643705) 1.88
es/codegen/with-parser/colors 47842 ns/iter (± 90) 47148 ns/iter (± 258) 1.01
es/codegen/with-parser/large 513720 ns/iter (± 2035) 515632 ns/iter (± 1078) 1.00
es/minify/libraries/antd 1515541731 ns/iter (± 19510965) 1387033700 ns/iter (± 19661204) 1.09
es/minify/libraries/d3 278783104 ns/iter (± 10904162) 266605696 ns/iter (± 6026967) 1.05
es/minify/libraries/echarts 1145045753 ns/iter (± 9735716) 1074488830 ns/iter (± 9777051) 1.07
es/minify/libraries/jquery 81112088 ns/iter (± 1218528) 80089995 ns/iter (± 1688653) 1.01
es/minify/libraries/lodash 96391289 ns/iter (± 1332617) 95657888 ns/iter (± 1948332) 1.01
es/minify/libraries/moment 47181827 ns/iter (± 913619) 45795257 ns/iter (± 369603) 1.03
es/minify/libraries/react 17126105 ns/iter (± 198083) 17236197 ns/iter (± 259717) 0.99
es/minify/libraries/terser 214437637 ns/iter (± 3726614) 215158648 ns/iter (± 2789508) 1.00
es/minify/libraries/three 372009871 ns/iter (± 2342092) 369001316 ns/iter (± 4153924) 1.01
es/minify/libraries/typescript 2681936845 ns/iter (± 15618498) 2518621542 ns/iter (± 23516957) 1.06
es/minify/libraries/victory 588047260 ns/iter (± 17892757) 565218260 ns/iter (± 10192633) 1.04
es/minify/libraries/vue 117684002 ns/iter (± 1495447) 118168505 ns/iter (± 1460389) 1.00
es/visitor/compare/clone 2330547 ns/iter (± 9614) 2335158 ns/iter (± 23820) 1.00
es/visitor/compare/visit_mut_span 2698606 ns/iter (± 8839) 2696529 ns/iter (± 14683) 1.00
es/visitor/compare/visit_mut_span_panic 2760531 ns/iter (± 7306) 2734673 ns/iter (± 6463) 1.01
es/visitor/compare/fold_span 3835107 ns/iter (± 17587) 3809596 ns/iter (± 13955) 1.01
es/visitor/compare/fold_span_panic 4003336 ns/iter (± 10614) 3948062 ns/iter (± 15158) 1.01
es/lexer/colors 15703 ns/iter (± 70) 15576 ns/iter (± 23) 1.01
es/lexer/angular 7766626 ns/iter (± 12092) 7707625 ns/iter (± 3365) 1.01
es/lexer/backbone 1000374 ns/iter (± 4138) 991084 ns/iter (± 331) 1.01
es/lexer/jquery 5598161 ns/iter (± 6594) 5540493 ns/iter (± 3217) 1.01
es/lexer/jquery mobile 8640243 ns/iter (± 13763) 8565537 ns/iter (± 5096) 1.01
es/lexer/mootools 4423811 ns/iter (± 27337) 4378133 ns/iter (± 4548) 1.01
es/lexer/underscore 839791 ns/iter (± 1101) 830528 ns/iter (± 263) 1.01
es/lexer/three 26243170 ns/iter (± 24562) 26069176 ns/iter (± 25203) 1.01
es/lexer/yui 4739335 ns/iter (± 6648) 4703205 ns/iter (± 5853) 1.01
es/parser/colors 29512 ns/iter (± 146) 29432 ns/iter (± 40) 1.00
es/parser/angular 15714560 ns/iter (± 172466) 15798436 ns/iter (± 276897) 0.99
es/parser/backbone 2229973 ns/iter (± 10790) 2204146 ns/iter (± 10523) 1.01
es/parser/jquery 12130360 ns/iter (± 93214) 12165293 ns/iter (± 176760) 1.00
es/parser/jquery mobile 19140709 ns/iter (± 330873) 19407907 ns/iter (± 228736) 0.99
es/parser/mootools 9257434 ns/iter (± 20102) 9214155 ns/iter (± 16034) 1.00
es/parser/underscore 1879287 ns/iter (± 14169) 1868265 ns/iter (± 9425) 1.01
es/parser/three 57443787 ns/iter (± 170640) 55936157 ns/iter (± 234254) 1.03
es/parser/yui 9345996 ns/iter (± 79269) 9288975 ns/iter (± 59331) 1.01
es/preset-env/usage/builtin_type 145832 ns/iter (± 35312) 140940 ns/iter (± 32875) 1.03
es/preset-env/usage/property 21058 ns/iter (± 53) 20825 ns/iter (± 73) 1.01
es/resolver/typescript 118415804 ns/iter (± 3689415) 108275737 ns/iter (± 1977334) 1.09
es/fixer/typescript 88220137 ns/iter (± 1374153) 78357578 ns/iter (± 445788) 1.13
es/hygiene/typescript 187167309 ns/iter (± 761857) 168273960 ns/iter (± 1597704) 1.11
es/resolver_with_hygiene/typescript 325252518 ns/iter (± 2612880) 304968668 ns/iter (± 1968009) 1.07
es/visitor/base-perf/module_clone 75792 ns/iter (± 1524) 77067 ns/iter (± 1640) 0.98
es/visitor/base-perf/fold_empty 86410 ns/iter (± 1511) 87012 ns/iter (± 1484) 0.99
es/visitor/base-perf/fold_noop_impl_all 88384 ns/iter (± 1771) 88466 ns/iter (± 1632) 1.00
es/visitor/base-perf/fold_noop_impl_vec 88792 ns/iter (± 1457) 87917 ns/iter (± 890) 1.01
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 56 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 53 ns/iter (± 0) 53 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 104 ns/iter (± 0) 102 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed 99 ns/iter (± 0) 96 ns/iter (± 0) 1.03
es/visitor/base-perf/visit_contains_this 3460 ns/iter (± 72) 3458 ns/iter (± 42) 1.00
es/base/parallel/resolver/typescript 5362057858 ns/iter (± 563051662) 5365447865 ns/iter (± 367514293) 1.00
es/base/parallel/hygiene/typescript 2149184170 ns/iter (± 23442259) 1984164570 ns/iter (± 20036688) 1.08
misc/visitors/time-complexity/time 5 104 ns/iter (± 0) 104 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 343 ns/iter (± 0) 327 ns/iter (± 5) 1.05
misc/visitors/time-complexity/time 15 665 ns/iter (± 1) 655 ns/iter (± 0) 1.02
misc/visitors/time-complexity/time 20 1224 ns/iter (± 1) 1211 ns/iter (± 0) 1.01
misc/visitors/time-complexity/time 40 6200 ns/iter (± 8) 6254 ns/iter (± 2) 0.99
misc/visitors/time-complexity/time 60 15615 ns/iter (± 50) 15618 ns/iter (± 50) 1.00
es/full-target/es2016 252398 ns/iter (± 1525) 187590 ns/iter (± 491) 1.35
es/full-target/es2017 244869 ns/iter (± 539) 183188 ns/iter (± 295) 1.34
es/full-target/es2018 232867 ns/iter (± 223) 172615 ns/iter (± 819) 1.35
es2020_nullish_coalescing 91603 ns/iter (± 315) 67243 ns/iter (± 115) 1.36
es2020_optional_chaining 124405 ns/iter (± 762) 96019 ns/iter (± 155) 1.30
es2022_class_properties 147484 ns/iter (± 427) 93762 ns/iter (± 274) 1.57
es2018_object_rest_spread 95726 ns/iter (± 234) 72011 ns/iter (± 106) 1.33
es2019_optional_catch_binding 84458 ns/iter (± 199) 61667 ns/iter (± 139) 1.37
es2017_async_to_generator 85628 ns/iter (± 220) 62116 ns/iter (± 132) 1.38
es2016_exponentiation 89433 ns/iter (± 279) 65466 ns/iter (± 181) 1.37
es2015_arrow 93547 ns/iter (± 333) 69933 ns/iter (± 141) 1.34
es2015_block_scoped_fn 90875 ns/iter (± 269) 66804 ns/iter (± 212) 1.36
es2015_block_scoping 168827 ns/iter (± 537) 147623 ns/iter (± 8573) 1.14

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

Please sign in to comment.