Skip to content

Commit

Permalink
fix(es/compat): Don't modify private fields from reserved_words pass (
Browse files Browse the repository at this point in the history
#7113)

**Related issue:**

 - Closes #7106.
  • Loading branch information
kdy1 committed Mar 21, 2023
1 parent 212af9b commit 2bc631d
Show file tree
Hide file tree
Showing 7 changed files with 79 additions and 0 deletions.
19 changes: 19 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7106/input/.swcrc
@@ -0,0 +1,19 @@
{
"jsc": {
"parser": {
"syntax": "typescript",
"tsx": false
},
"target": "es2022",
"loose": false,
"minify": {
"compress": false,
"mangle": false
}
},
"module": {
"type": "es6"
},
"minify": false,
"isModule": true
}
8 changes: 8 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7106/input/input.js
@@ -0,0 +1,8 @@
export class test {
#throw() { };
#new() { };
test() {
this.#throw();
this.#new();
}
}
8 changes: 8 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7106/output/input.js
@@ -0,0 +1,8 @@
export class test {
#throw() {}
#new() {}
test() {
this.#throw();
this.#new();
}
}
2 changes: 2 additions & 0 deletions crates/swc_ecma_transforms_compat/src/reserved_words.rs
Expand Up @@ -35,6 +35,8 @@ impl VisitMut for EsReservedWord {
s.local.visit_mut_with(self);
}

fn visit_mut_private_name(&mut self, _: &mut PrivateName) {}

fn visit_mut_prop_name(&mut self, _n: &mut PropName) {}
}

Expand Down
@@ -0,0 +1,8 @@
export class test {
#throw() { }
#new() { }
test() {
this.#throw();
this.#new();
}
}
@@ -0,0 +1,8 @@
export class test {
#throw() {}
#new() {}
test() {
this.#throw();
this.#new();
}
}
26 changes: 26 additions & 0 deletions crates/swc_ecma_transforms_typescript/tests/strip.rs
Expand Up @@ -4532,3 +4532,29 @@ test!(
A[A["a"] = a] = "a";
})(A || (A = {}))"#
);

test!(
::swc_ecma_parser::Syntax::Typescript(Default::default()),
|_| tr(),
issue_7106,
"
export class test {
#throw() {}
#new() {}
test() {
this.#throw();
this.#new();
}
}
",
"
export class test {
#throw() {}
#new() {}
test() {
this.#throw();
this.#new();
}
}
"
);

1 comment on commit 2bc631d

@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: 2bc631d Previous: 6a570a3 Ratio
es/full/bugs-1 321833 ns/iter (± 11229) 308982 ns/iter (± 12851) 1.04
es/full/minify/libraries/antd 1624682078 ns/iter (± 28735983) 1509098988 ns/iter (± 25567382) 1.08
es/full/minify/libraries/d3 297899265 ns/iter (± 2998252) 294821266 ns/iter (± 5355869) 1.01
es/full/minify/libraries/echarts 1231641967 ns/iter (± 12718899) 1181272480 ns/iter (± 16933530) 1.04
es/full/minify/libraries/jquery 91204490 ns/iter (± 1817176) 89468378 ns/iter (± 726133) 1.02
es/full/minify/libraries/lodash 107556001 ns/iter (± 2308095) 104893898 ns/iter (± 866355) 1.03
es/full/minify/libraries/moment 53093025 ns/iter (± 1414681) 51803015 ns/iter (± 368491) 1.02
es/full/minify/libraries/react 19234329 ns/iter (± 196481) 18962921 ns/iter (± 100587) 1.01
es/full/minify/libraries/terser 246547587 ns/iter (± 3918240) 242798360 ns/iter (± 3768651) 1.02
es/full/minify/libraries/three 431458134 ns/iter (± 10055858) 425140826 ns/iter (± 4257261) 1.01
es/full/minify/libraries/typescript 3068742490 ns/iter (± 13938389) 2912627912 ns/iter (± 30771190) 1.05
es/full/minify/libraries/victory 677661118 ns/iter (± 12534858) 683560931 ns/iter (± 14845645) 0.99
es/full/minify/libraries/vue 130332366 ns/iter (± 1910102) 131228347 ns/iter (± 1389708) 0.99
es/full/codegen/es3 26082 ns/iter (± 64) 26456 ns/iter (± 160) 0.99
es/full/codegen/es5 26174 ns/iter (± 56) 26549 ns/iter (± 66) 0.99
es/full/codegen/es2015 26144 ns/iter (± 54) 26548 ns/iter (± 58) 0.98
es/full/codegen/es2016 26126 ns/iter (± 49) 26552 ns/iter (± 57) 0.98
es/full/codegen/es2017 26140 ns/iter (± 59) 26601 ns/iter (± 66) 0.98
es/full/codegen/es2018 26122 ns/iter (± 37) 26538 ns/iter (± 67) 0.98
es/full/codegen/es2019 26117 ns/iter (± 59) 26564 ns/iter (± 52) 0.98
es/full/codegen/es2020 26128 ns/iter (± 66) 26499 ns/iter (± 49) 0.99
es/full/all/es3 186261286 ns/iter (± 4260837) 181433356 ns/iter (± 2969983) 1.03
es/full/all/es5 177472737 ns/iter (± 4776082) 171471625 ns/iter (± 2132023) 1.03
es/full/all/es2015 139782035 ns/iter (± 2505589) 137861930 ns/iter (± 2289316) 1.01
es/full/all/es2016 138056919 ns/iter (± 2561890) 137970242 ns/iter (± 2539681) 1.00
es/full/all/es2017 137884992 ns/iter (± 1687711) 135433618 ns/iter (± 2008203) 1.02
es/full/all/es2018 137912787 ns/iter (± 4140218) 131660832 ns/iter (± 1267670) 1.05
es/full/all/es2019 133831959 ns/iter (± 1791299) 129949389 ns/iter (± 1412630) 1.03
es/full/all/es2020 124279123 ns/iter (± 2128938) 119447120 ns/iter (± 483312) 1.04
es/full/parser 540863 ns/iter (± 9528) 542644 ns/iter (± 9108) 1.00
es/full/base/fixer 22186 ns/iter (± 50) 22533 ns/iter (± 40) 0.98
es/full/base/resolver_and_hygiene 82183 ns/iter (± 184) 84407 ns/iter (± 121) 0.97
serialization of ast node 124 ns/iter (± 0) 124 ns/iter (± 0) 1
serialization of serde 127 ns/iter (± 0) 126 ns/iter (± 0) 1.01
css/minify/libraries/bootstrap 28593221 ns/iter (± 183173) 28418358 ns/iter (± 76067) 1.01
css/visitor/compare/clone 2105776 ns/iter (± 15437) 2088777 ns/iter (± 9923) 1.01
css/visitor/compare/visit_mut_span 2274699 ns/iter (± 8086) 2268514 ns/iter (± 7379) 1.00
css/visitor/compare/visit_mut_span_panic 2318193 ns/iter (± 5409) 2325539 ns/iter (± 8703) 1.00
css/visitor/compare/fold_span 3041115 ns/iter (± 26759) 3061889 ns/iter (± 11607) 0.99
css/visitor/compare/fold_span_panic 3186096 ns/iter (± 31186) 3196808 ns/iter (± 20648) 1.00
css/lexer/bootstrap_5_1_3 5128836 ns/iter (± 4933) 5139514 ns/iter (± 4668) 1.00
css/lexer/foundation_6_7_4 4309060 ns/iter (± 816) 4333283 ns/iter (± 1587) 0.99
css/lexer/tailwind_3_1_1 821698 ns/iter (± 6461) 825109 ns/iter (± 425) 1.00
css/parser/bootstrap_5_1_3 21799424 ns/iter (± 118788) 21950704 ns/iter (± 149116) 0.99
css/parser/foundation_6_7_4 17376811 ns/iter (± 25567) 17454411 ns/iter (± 40045) 1.00
css/parser/tailwind_3_1_1 3337249 ns/iter (± 3840) 3345885 ns/iter (± 2571) 1.00
es/codegen/colors 327051 ns/iter (± 184789) 329518 ns/iter (± 184413) 0.99
es/codegen/large 1206010 ns/iter (± 624248) 1190449 ns/iter (± 604595) 1.01
es/codegen/with-parser/colors 47044 ns/iter (± 258) 47267 ns/iter (± 446) 1.00
es/codegen/with-parser/large 523585 ns/iter (± 1334) 521409 ns/iter (± 1474) 1.00
es/minify/libraries/antd 1428011295 ns/iter (± 22059872) 1333879542 ns/iter (± 14865708) 1.07
es/minify/libraries/d3 253369896 ns/iter (± 5742631) 250736353 ns/iter (± 3372939) 1.01
es/minify/libraries/echarts 1089399386 ns/iter (± 18356057) 1018615982 ns/iter (± 12491511) 1.07
es/minify/libraries/jquery 80067697 ns/iter (± 1230747) 78532730 ns/iter (± 536246) 1.02
es/minify/libraries/lodash 96013019 ns/iter (± 2399485) 94305656 ns/iter (± 963257) 1.02
es/minify/libraries/moment 46002253 ns/iter (± 336405) 45544433 ns/iter (± 122054) 1.01
es/minify/libraries/react 17787130 ns/iter (± 193965) 17217494 ns/iter (± 48988) 1.03
es/minify/libraries/terser 218699675 ns/iter (± 3677009) 208738118 ns/iter (± 3604953) 1.05
es/minify/libraries/three 389618837 ns/iter (± 19106002) 365137158 ns/iter (± 5836696) 1.07
es/minify/libraries/typescript 2733584751 ns/iter (± 43302768) 2477268237 ns/iter (± 8521738) 1.10
es/minify/libraries/victory 593816705 ns/iter (± 24070965) 547371254 ns/iter (± 7276105) 1.08
es/minify/libraries/vue 123083741 ns/iter (± 3889020) 114780651 ns/iter (± 289658) 1.07
es/visitor/compare/clone 2299184 ns/iter (± 8756) 2362603 ns/iter (± 13331) 0.97
es/visitor/compare/visit_mut_span 2642575 ns/iter (± 4025) 2709230 ns/iter (± 6134) 0.98
es/visitor/compare/visit_mut_span_panic 2703352 ns/iter (± 6386) 2771317 ns/iter (± 4641) 0.98
es/visitor/compare/fold_span 3765807 ns/iter (± 12693) 3837625 ns/iter (± 9880) 0.98
es/visitor/compare/fold_span_panic 3929611 ns/iter (± 18726) 3987201 ns/iter (± 10023) 0.99
es/lexer/colors 15345 ns/iter (± 14) 15239 ns/iter (± 21) 1.01
es/lexer/angular 7349144 ns/iter (± 7287) 7359666 ns/iter (± 8350) 1.00
es/lexer/backbone 981666 ns/iter (± 6228) 978509 ns/iter (± 1097) 1.00
es/lexer/jquery 5511036 ns/iter (± 6639) 5518811 ns/iter (± 4901) 1.00
es/lexer/jquery mobile 8473320 ns/iter (± 4905) 8479325 ns/iter (± 8672) 1.00
es/lexer/mootools 4364695 ns/iter (± 3144) 4374775 ns/iter (± 2214) 1.00
es/lexer/underscore 825371 ns/iter (± 463) 822997 ns/iter (± 721) 1.00
es/lexer/three 25837245 ns/iter (± 16158) 25960000 ns/iter (± 40295) 1.00
es/lexer/yui 4633316 ns/iter (± 1674) 4633345 ns/iter (± 5076) 1.00
es/parser/colors 29045 ns/iter (± 55) 29732 ns/iter (± 54) 0.98
es/parser/angular 15064424 ns/iter (± 137184) 15415791 ns/iter (± 77406) 0.98
es/parser/backbone 2224346 ns/iter (± 15383) 2219253 ns/iter (± 13338) 1.00
es/parser/jquery 12113506 ns/iter (± 104366) 12111120 ns/iter (± 100486) 1.00
es/parser/jquery mobile 18932551 ns/iter (± 441350) 19203993 ns/iter (± 246610) 0.99
es/parser/mootools 9217556 ns/iter (± 32559) 9188542 ns/iter (± 35505) 1.00
es/parser/underscore 1879469 ns/iter (± 23355) 1882099 ns/iter (± 12195) 1.00
es/parser/three 56011440 ns/iter (± 713678) 55451040 ns/iter (± 526086) 1.01
es/parser/yui 9213639 ns/iter (± 83043) 9377345 ns/iter (± 62335) 0.98
es/preset-env/usage/builtin_type 138748 ns/iter (± 32741) 136860 ns/iter (± 31400) 1.01
es/preset-env/usage/property 20631 ns/iter (± 91) 21199 ns/iter (± 58) 0.97
es/resolver/typescript 122615924 ns/iter (± 3465223) 114726059 ns/iter (± 3590714) 1.07
es/fixer/typescript 87129205 ns/iter (± 855154) 80167471 ns/iter (± 1678748) 1.09
es/hygiene/typescript 184548056 ns/iter (± 2673979) 168247587 ns/iter (± 2571792) 1.10
es/resolver_with_hygiene/typescript 322634436 ns/iter (± 5556435) 307901607 ns/iter (± 3453971) 1.05
es/visitor/base-perf/module_clone 78217 ns/iter (± 1415) 79558 ns/iter (± 991) 0.98
es/visitor/base-perf/fold_empty 89553 ns/iter (± 1501) 88624 ns/iter (± 1273) 1.01
es/visitor/base-perf/fold_noop_impl_all 91017 ns/iter (± 875) 88983 ns/iter (± 1592) 1.02
es/visitor/base-perf/fold_noop_impl_vec 91357 ns/iter (± 1208) 88866 ns/iter (± 1537) 1.03
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 57 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_unboxed_clone 53 ns/iter (± 0) 54 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_boxed 102 ns/iter (± 0) 103 ns/iter (± 0) 0.99
es/visitor/base-perf/boxing_unboxed 98 ns/iter (± 0) 99 ns/iter (± 0) 0.99
es/visitor/base-perf/visit_contains_this 3465 ns/iter (± 79) 3559 ns/iter (± 73) 0.97
es/base/parallel/resolver/typescript 6859907922 ns/iter (± 379572295) 6721382406 ns/iter (± 350507822) 1.02
es/base/parallel/hygiene/typescript 2142249846 ns/iter (± 35858642) 1955853526 ns/iter (± 25296552) 1.10
misc/visitors/time-complexity/time 5 95 ns/iter (± 0) 100 ns/iter (± 0) 0.95
misc/visitors/time-complexity/time 10 292 ns/iter (± 9) 345 ns/iter (± 3) 0.85
misc/visitors/time-complexity/time 15 599 ns/iter (± 1) 673 ns/iter (± 3) 0.89
misc/visitors/time-complexity/time 20 1122 ns/iter (± 0) 1257 ns/iter (± 15) 0.89
misc/visitors/time-complexity/time 40 5921 ns/iter (± 42) 6747 ns/iter (± 26) 0.88
misc/visitors/time-complexity/time 60 15426 ns/iter (± 311) 17270 ns/iter (± 36) 0.89
es/full-target/es2016 250124 ns/iter (± 1122) 251480 ns/iter (± 335) 0.99
es/full-target/es2017 242261 ns/iter (± 402) 243568 ns/iter (± 515) 0.99
es/full-target/es2018 231133 ns/iter (± 753) 232618 ns/iter (± 417) 0.99
es2020_nullish_coalescing 91232 ns/iter (± 247) 91633 ns/iter (± 312) 1.00
es2020_optional_chaining 124927 ns/iter (± 461) 124383 ns/iter (± 526) 1.00
es2022_class_properties 146967 ns/iter (± 257) 147389 ns/iter (± 456) 1.00
es2018_object_rest_spread 94759 ns/iter (± 215) 95545 ns/iter (± 170) 0.99
es2019_optional_catch_binding 84079 ns/iter (± 196) 84734 ns/iter (± 221) 0.99
es2017_async_to_generator 85045 ns/iter (± 172) 85535 ns/iter (± 148) 0.99
es2016_exponentiation 88938 ns/iter (± 107) 89550 ns/iter (± 202) 0.99
es2015_arrow 93197 ns/iter (± 181) 93811 ns/iter (± 225) 0.99
es2015_block_scoped_fn 91041 ns/iter (± 264) 91375 ns/iter (± 284) 1.00
es2015_block_scoping 168483 ns/iter (± 330) 169146 ns/iter (± 486) 1.00

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

Please sign in to comment.