Skip to content

Commit 7e99e5f

Browse files
authoredApr 26, 2023
fix(es/codegen): Emit type arguments for call expressions (#7335)
1 parent 1ecc438 commit 7e99e5f

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed
 

‎crates/swc_ecma_codegen/src/lib.rs

+4
Original file line numberDiff line numberDiff line change
@@ -857,6 +857,10 @@ where
857857

858858
emit!(node.callee);
859859

860+
if let Some(type_args) = &node.type_args {
861+
emit!(type_args);
862+
}
863+
860864
punct!("(");
861865
self.emit_expr_or_spreads(node.span(), &node.args, ListFormat::CallExpressionArguments)?;
862866
punct!(")");

‎crates/swc_ecma_codegen/src/typescript.rs

+10
Original file line numberDiff line numberDiff line change
@@ -1122,4 +1122,14 @@ mod tests {
11221122
"var memory:WebAssembly.Memory",
11231123
);
11241124
}
1125+
1126+
#[test]
1127+
fn type_arg() {
1128+
assert_min_typescript("do_stuff<T>()", "do_stuff<T>()");
1129+
}
1130+
1131+
#[test]
1132+
fn no_type_arg() {
1133+
assert_min_typescript("do_stuff()", "do_stuff()");
1134+
}
11251135
}

1 commit comments

Comments
 (1)

github-actions[bot] commented on Apr 26, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: 7e99e5f Previous: caee073 Ratio
es/full/bugs-1 294659 ns/iter (± 11053) 292379 ns/iter (± 12946) 1.01
es/full/minify/libraries/antd 1547627418 ns/iter (± 22354566) 1549510425 ns/iter (± 33469371) 1.00
es/full/minify/libraries/d3 298192659 ns/iter (± 6532753) 303436117 ns/iter (± 10832667) 0.98
es/full/minify/libraries/echarts 1213258498 ns/iter (± 23039184) 1205291214 ns/iter (± 15571283) 1.01
es/full/minify/libraries/jquery 89707662 ns/iter (± 727822) 89928444 ns/iter (± 856909) 1.00
es/full/minify/libraries/lodash 104876826 ns/iter (± 1078380) 104415028 ns/iter (± 1052705) 1.00
es/full/minify/libraries/moment 51814927 ns/iter (± 256237) 52198734 ns/iter (± 943765) 0.99
es/full/minify/libraries/react 18938329 ns/iter (± 158945) 19081729 ns/iter (± 177113) 0.99
es/full/minify/libraries/terser 245247548 ns/iter (± 6071585) 241432120 ns/iter (± 3995825) 1.02
es/full/minify/libraries/three 427379338 ns/iter (± 10456027) 429860892 ns/iter (± 9164439) 0.99
es/full/minify/libraries/typescript 2945392246 ns/iter (± 26988522) 2900676498 ns/iter (± 11754798) 1.02
es/full/minify/libraries/victory 670418919 ns/iter (± 14888486) 639947137 ns/iter (± 18027836) 1.05
es/full/minify/libraries/vue 129421216 ns/iter (± 1203824) 128676867 ns/iter (± 1312035) 1.01
es/full/codegen/es3 29070 ns/iter (± 65) 28615 ns/iter (± 50) 1.02
es/full/codegen/es5 29187 ns/iter (± 33) 28734 ns/iter (± 56) 1.02
es/full/codegen/es2015 29186 ns/iter (± 50) 28710 ns/iter (± 51) 1.02
es/full/codegen/es2016 29147 ns/iter (± 42) 28680 ns/iter (± 49) 1.02
es/full/codegen/es2017 29171 ns/iter (± 51) 28715 ns/iter (± 53) 1.02
es/full/codegen/es2018 29141 ns/iter (± 87) 28734 ns/iter (± 64) 1.01
es/full/codegen/es2019 29132 ns/iter (± 67) 28735 ns/iter (± 44) 1.01
es/full/codegen/es2020 29191 ns/iter (± 59) 28712 ns/iter (± 45) 1.02
es/full/all/es3 182389345 ns/iter (± 2542891) 178804269 ns/iter (± 3470917) 1.02
es/full/all/es5 172641713 ns/iter (± 1900408) 174568921 ns/iter (± 1861422) 0.99
es/full/all/es2015 136109823 ns/iter (± 2859605) 133993663 ns/iter (± 2070038) 1.02
es/full/all/es2016 133073942 ns/iter (± 1333514) 132279793 ns/iter (± 1751472) 1.01
es/full/all/es2017 131931391 ns/iter (± 1742905) 130309425 ns/iter (± 1500207) 1.01
es/full/all/es2018 128106972 ns/iter (± 1647189) 125554282 ns/iter (± 1615773) 1.02
es/full/all/es2019 123999029 ns/iter (± 1804503) 124457190 ns/iter (± 2031258) 1.00
es/full/all/es2020 118578107 ns/iter (± 994106) 117328594 ns/iter (± 803501) 1.01
es/full/parser 518752 ns/iter (± 5574) 517762 ns/iter (± 8020) 1.00
es/full/base/fixer 22451 ns/iter (± 37) 22951 ns/iter (± 48) 0.98
es/full/base/resolver_and_hygiene 85754 ns/iter (± 94) 86288 ns/iter (± 107) 0.99
serialization of serde 121 ns/iter (± 0) 139 ns/iter (± 0) 0.87
css/minify/libraries/bootstrap 27482579 ns/iter (± 141603) 27663755 ns/iter (± 126776) 0.99
css/visitor/compare/clone 2113761 ns/iter (± 3902) 2100074 ns/iter (± 13176) 1.01
css/visitor/compare/visit_mut_span 2315860 ns/iter (± 6820) 2284848 ns/iter (± 5129) 1.01
css/visitor/compare/visit_mut_span_panic 2358400 ns/iter (± 5160) 2342902 ns/iter (± 7086) 1.01
css/visitor/compare/fold_span 3059035 ns/iter (± 14966) 3076605 ns/iter (± 15518) 0.99
css/visitor/compare/fold_span_panic 3229248 ns/iter (± 14383) 3225621 ns/iter (± 10964) 1.00
css/lexer/bootstrap_5_1_3 5124674 ns/iter (± 19499) 5137670 ns/iter (± 8265) 1.00
css/lexer/foundation_6_7_4 4315915 ns/iter (± 3904) 4316212 ns/iter (± 8285) 1.00
css/lexer/tailwind_3_1_1 822790 ns/iter (± 516) 819628 ns/iter (± 1125) 1.00
css/parser/bootstrap_5_1_3 21264720 ns/iter (± 136496) 21058145 ns/iter (± 232403) 1.01
css/parser/foundation_6_7_4 16732350 ns/iter (± 30144) 16797035 ns/iter (± 91086) 1.00
css/parser/tailwind_3_1_1 3236724 ns/iter (± 2374) 3233232 ns/iter (± 3629) 1.00
es/codegen/colors 319068 ns/iter (± 180033) 320847 ns/iter (± 182888) 0.99
es/codegen/large 1247338 ns/iter (± 651732) 1094397 ns/iter (± 552526) 1.14
es/codegen/with-parser/colors 47650 ns/iter (± 332) 47500 ns/iter (± 170) 1.00
es/codegen/with-parser/large 511059 ns/iter (± 1190) 512398 ns/iter (± 906) 1.00
es/minify/libraries/antd 1350125954 ns/iter (± 16134220) 1328797441 ns/iter (± 16782684) 1.02
es/minify/libraries/d3 255062762 ns/iter (± 7352350) 251575127 ns/iter (± 4104195) 1.01
es/minify/libraries/echarts 1033015734 ns/iter (± 17725590) 1040749981 ns/iter (± 16201594) 0.99
es/minify/libraries/jquery 79015888 ns/iter (± 832158) 79188877 ns/iter (± 1081350) 1.00
es/minify/libraries/lodash 94013570 ns/iter (± 1071722) 95478520 ns/iter (± 1100256) 0.98
es/minify/libraries/moment 45399938 ns/iter (± 256638) 45939473 ns/iter (± 605526) 0.99
es/minify/libraries/react 16874200 ns/iter (± 193108) 16970338 ns/iter (± 268255) 0.99
es/minify/libraries/terser 206485863 ns/iter (± 3092509) 206945729 ns/iter (± 4355639) 1.00
es/minify/libraries/three 359274279 ns/iter (± 13157576) 364498859 ns/iter (± 9403968) 0.99
es/minify/libraries/typescript 2490388810 ns/iter (± 21837261) 2472880380 ns/iter (± 19365345) 1.01
es/minify/libraries/victory 548186384 ns/iter (± 14924705) 561464619 ns/iter (± 7541792) 0.98
es/minify/libraries/vue 116375910 ns/iter (± 1605645) 113989039 ns/iter (± 1848896) 1.02
es/visitor/compare/clone 2335573 ns/iter (± 6007) 2325488 ns/iter (± 4860) 1.00
es/visitor/compare/visit_mut_span 2707883 ns/iter (± 3445) 2708274 ns/iter (± 5391) 1.00
es/visitor/compare/visit_mut_span_panic 2740064 ns/iter (± 3057) 2740550 ns/iter (± 25152) 1.00
es/visitor/compare/fold_span 3811114 ns/iter (± 10111) 3823888 ns/iter (± 13958) 1.00
es/visitor/compare/fold_span_panic 3937220 ns/iter (± 9731) 3956896 ns/iter (± 10840) 1.00
es/lexer/colors 13184 ns/iter (± 27) 13168 ns/iter (± 69) 1.00
es/lexer/angular 6440041 ns/iter (± 4621) 6457219 ns/iter (± 7964) 1.00
es/lexer/backbone 794506 ns/iter (± 795) 793462 ns/iter (± 1284) 1.00
es/lexer/jquery 4441917 ns/iter (± 3352) 4450671 ns/iter (± 4327) 1.00
es/lexer/jquery mobile 6937051 ns/iter (± 4192) 6973146 ns/iter (± 5899) 0.99
es/lexer/mootools 3490081 ns/iter (± 6156) 3491568 ns/iter (± 4340) 1.00
es/lexer/underscore 657109 ns/iter (± 417) 655141 ns/iter (± 613) 1.00
es/lexer/three 21121620 ns/iter (± 44008) 21137840 ns/iter (± 27491) 1.00
es/lexer/yui 3901410 ns/iter (± 6068) 3886903 ns/iter (± 6162) 1.00
es/parser/colors 29018 ns/iter (± 116) 28970 ns/iter (± 88) 1.00
es/parser/angular 15014175 ns/iter (± 176603) 15025892 ns/iter (± 170710) 1.00
es/parser/backbone 2151703 ns/iter (± 11248) 2150320 ns/iter (± 14666) 1.00
es/parser/jquery 11785592 ns/iter (± 131618) 11729750 ns/iter (± 111787) 1.00
es/parser/jquery mobile 18271253 ns/iter (± 191535) 18144509 ns/iter (± 164935) 1.01
es/parser/mootools 8908870 ns/iter (± 19667) 8905807 ns/iter (± 18047) 1.00
es/parser/underscore 1807584 ns/iter (± 11062) 1814331 ns/iter (± 10673) 1.00
es/parser/three 53894128 ns/iter (± 498672) 53099585 ns/iter (± 873972) 1.01
es/parser/yui 9002033 ns/iter (± 55596) 9057277 ns/iter (± 60540) 0.99
es/preset-env/usage/builtin_type 142614 ns/iter (± 35233) 142853 ns/iter (± 35150) 1.00
es/preset-env/usage/property 19958 ns/iter (± 106) 19738 ns/iter (± 138) 1.01
es/resolver/typescript 110535010 ns/iter (± 2008833) 111408420 ns/iter (± 3670453) 0.99
es/fixer/typescript 80073336 ns/iter (± 671667) 77304846 ns/iter (± 484504) 1.04
es/hygiene/typescript 169048492 ns/iter (± 1124492) 165927754 ns/iter (± 1581513) 1.02
es/resolver_with_hygiene/typescript 313359245 ns/iter (± 3197298) 306844962 ns/iter (± 2213818) 1.02
es/visitor/base-perf/module_clone 81092 ns/iter (± 362) 80811 ns/iter (± 540) 1.00
es/visitor/base-perf/fold_empty 90878 ns/iter (± 300) 90777 ns/iter (± 342) 1.00
es/visitor/base-perf/fold_noop_impl_all 90828 ns/iter (± 219) 91310 ns/iter (± 365) 0.99
es/visitor/base-perf/fold_noop_impl_vec 91097 ns/iter (± 232) 91470 ns/iter (± 624) 1.00
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 56 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 42 ns/iter (± 0) 41 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_boxed 102 ns/iter (± 0) 103 ns/iter (± 0) 0.99
es/visitor/base-perf/boxing_unboxed 78 ns/iter (± 0) 78 ns/iter (± 0) 1
es/visitor/base-perf/visit_contains_this 3525 ns/iter (± 73) 3570 ns/iter (± 57) 0.99
es/base/parallel/resolver/typescript 5912710018 ns/iter (± 499249616) 5687137548 ns/iter (± 405575822) 1.04
es/base/parallel/hygiene/typescript 2001417120 ns/iter (± 19687774) 2003608603 ns/iter (± 28159604) 1.00
misc/visitors/time-complexity/time 5 106 ns/iter (± 0) 106 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 351 ns/iter (± 5) 343 ns/iter (± 0) 1.02
misc/visitors/time-complexity/time 15 665 ns/iter (± 2) 664 ns/iter (± 2) 1.00
misc/visitors/time-complexity/time 20 1227 ns/iter (± 1) 1226 ns/iter (± 1) 1.00
misc/visitors/time-complexity/time 40 6209 ns/iter (± 5) 6211 ns/iter (± 11) 1.00
misc/visitors/time-complexity/time 60 15629 ns/iter (± 45) 15588 ns/iter (± 17) 1.00
es/full-target/es2016 256778 ns/iter (± 392) 254205 ns/iter (± 426) 1.01
es/full-target/es2017 247090 ns/iter (± 333) 245870 ns/iter (± 480) 1.00
es/full-target/es2018 236200 ns/iter (± 643) 235501 ns/iter (± 481) 1.00
es2020_nullish_coalescing 93143 ns/iter (± 237) 92882 ns/iter (± 379) 1.00
es2020_optional_chaining 125230 ns/iter (± 305) 124868 ns/iter (± 258) 1.00
es2022_class_properties 149543 ns/iter (± 462) 149201 ns/iter (± 219) 1.00
es2018_object_rest_spread 96458 ns/iter (± 281) 96528 ns/iter (± 381) 1.00
es2019_optional_catch_binding 85399 ns/iter (± 157) 85691 ns/iter (± 160) 1.00
es2017_async_to_generator 86139 ns/iter (± 204) 85802 ns/iter (± 254) 1.00
es2016_exponentiation 91308 ns/iter (± 280) 90334 ns/iter (± 200) 1.01
es2015_arrow 94870 ns/iter (± 241) 94049 ns/iter (± 386) 1.01
es2015_block_scoped_fn 92693 ns/iter (± 296) 92349 ns/iter (± 407) 1.00
es2015_block_scoping 170234 ns/iter (± 307) 169527 ns/iter (± 253) 1.00

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

Please sign in to comment.