Skip to content

Commit

Permalink
fix(es/typescript): Treat export default declarations as declarations (
Browse files Browse the repository at this point in the history
…#7017)

**Related issue:**

 - Closes #6953.
  • Loading branch information
kdy1 committed Mar 6, 2023
1 parent 66247f0 commit 34f9ad3
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
17 changes: 17 additions & 0 deletions crates/swc_ecma_transforms_typescript/src/strip.rs
Expand Up @@ -1581,6 +1581,23 @@ where
self.non_top_level = old;
}

fn visit_default_decl(&mut self, decl: &DefaultDecl) {
decl.visit_children_with(self);
match decl {
DefaultDecl::Class(d) => {
if let Some(id) = &d.ident {
self.store(id.sym.clone(), id.span.ctxt, true);
}
}
DefaultDecl::Fn(d) => {
if let Some(id) = &d.ident {
self.store(id.sym.clone(), id.span.ctxt, true);
}
}
_ => {}
}
}

fn visit_expr(&mut self, n: &Expr) {
let old = self.in_var_pat;
self.in_var_pat = false;
Expand Down
@@ -0,0 +1,15 @@
import { Scope } from "../../scopes";
import {
AnyNode,
TSUnknownKeywordTypeAnnotation,
tsUnknownKeywordTypeAnnotation,
} from "@internal/ast";

export default function TSUnknownKeywordTypeAnnotation(
node: AnyNode,
scope: Scope,
) {
node = tsUnknownKeywordTypeAnnotation.assert(node);
scope;
throw new Error("unimplemented");
}
@@ -0,0 +1,6 @@
import { tsUnknownKeywordTypeAnnotation } from "@internal/ast";
export default function TSUnknownKeywordTypeAnnotation(node, scope) {
node = tsUnknownKeywordTypeAnnotation.assert(node);
scope;
throw new Error("unimplemented");
}

1 comment on commit 34f9ad3

@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: 34f9ad3 Previous: da5367b Ratio
es/full/bugs-1 308512 ns/iter (± 16467) 304764 ns/iter (± 8673) 1.01
es/full/minify/libraries/antd 1698889544 ns/iter (± 47815608) 1764128304 ns/iter (± 20367966) 0.96
es/full/minify/libraries/d3 299333971 ns/iter (± 6510919) 312914535 ns/iter (± 4735409) 0.96
es/full/minify/libraries/echarts 1294526287 ns/iter (± 6372761) 1337036225 ns/iter (± 8859751) 0.97
es/full/minify/libraries/jquery 91782327 ns/iter (± 620736) 93420411 ns/iter (± 493557) 0.98
es/full/minify/libraries/lodash 107124435 ns/iter (± 908734) 108805955 ns/iter (± 633047) 0.98
es/full/minify/libraries/moment 53586749 ns/iter (± 392695) 54160814 ns/iter (± 508419) 0.99
es/full/minify/libraries/react 19328083 ns/iter (± 216182) 19495262 ns/iter (± 77662) 0.99
es/full/minify/libraries/terser 250846627 ns/iter (± 2110540) 258519581 ns/iter (± 2782404) 0.97
es/full/minify/libraries/three 454585088 ns/iter (± 2705487) 468796930 ns/iter (± 4173465) 0.97
es/full/minify/libraries/typescript 3183843026 ns/iter (± 16713740) 3301969573 ns/iter (± 17432502) 0.96
es/full/minify/libraries/victory 691745115 ns/iter (± 10438722) 716758419 ns/iter (± 14649157) 0.97
es/full/minify/libraries/vue 131947705 ns/iter (± 791050) 134212762 ns/iter (± 1564905) 0.98
es/full/codegen/es3 25933 ns/iter (± 95) 26410 ns/iter (± 46) 0.98
es/full/codegen/es5 25928 ns/iter (± 67) 26397 ns/iter (± 65) 0.98
es/full/codegen/es2015 25918 ns/iter (± 91) 26432 ns/iter (± 30) 0.98
es/full/codegen/es2016 25906 ns/iter (± 83) 26427 ns/iter (± 60) 0.98
es/full/codegen/es2017 25950 ns/iter (± 49) 26428 ns/iter (± 80) 0.98
es/full/codegen/es2018 25882 ns/iter (± 71) 26437 ns/iter (± 39) 0.98
es/full/codegen/es2019 25925 ns/iter (± 69) 26383 ns/iter (± 51) 0.98
es/full/codegen/es2020 25970 ns/iter (± 61) 26433 ns/iter (± 36) 0.98
es/full/all/es3 172096916 ns/iter (± 2410540) 173078665 ns/iter (± 2966467) 0.99
es/full/all/es5 162634617 ns/iter (± 3688496) 163804297 ns/iter (± 2590036) 0.99
es/full/all/es2015 127293594 ns/iter (± 1940186) 124915668 ns/iter (± 1898823) 1.02
es/full/all/es2016 124362984 ns/iter (± 1249527) 125436822 ns/iter (± 1897410) 0.99
es/full/all/es2017 123603167 ns/iter (± 1414451) 123115542 ns/iter (± 994049) 1.00
es/full/all/es2018 121159810 ns/iter (± 998187) 120126481 ns/iter (± 628189) 1.01
es/full/all/es2019 120695835 ns/iter (± 871178) 119709122 ns/iter (± 1060444) 1.01
es/full/all/es2020 115004404 ns/iter (± 1481342) 115154387 ns/iter (± 594479) 1.00
es/full/parser 544741 ns/iter (± 7707) 543039 ns/iter (± 9009) 1.00
es/full/base/fixer 21943 ns/iter (± 36) 22152 ns/iter (± 82) 0.99
es/full/base/resolver_and_hygiene 81178 ns/iter (± 96) 81378 ns/iter (± 93) 1.00
serialization of ast node 144 ns/iter (± 0) 145 ns/iter (± 0) 0.99
serialization of serde 134 ns/iter (± 0) 134 ns/iter (± 0) 1
css/minify/libraries/bootstrap 28559366 ns/iter (± 139487) 28306476 ns/iter (± 189203) 1.01
css/visitor/compare/clone 2062789 ns/iter (± 22041) 2071544 ns/iter (± 7700) 1.00
css/visitor/compare/visit_mut_span 2241179 ns/iter (± 5228) 2253334 ns/iter (± 6787) 0.99
css/visitor/compare/visit_mut_span_panic 2337288 ns/iter (± 4783) 2316537 ns/iter (± 6208) 1.01
css/visitor/compare/fold_span 3055345 ns/iter (± 17080) 3033700 ns/iter (± 20369) 1.01
css/visitor/compare/fold_span_panic 3211476 ns/iter (± 22719) 3139766 ns/iter (± 20608) 1.02
css/lexer/bootstrap_5_1_3 5190110 ns/iter (± 40728) 5219993 ns/iter (± 3629) 0.99
css/lexer/foundation_6_7_4 4367995 ns/iter (± 1250) 4396322 ns/iter (± 6049) 0.99
css/lexer/tailwind_3_1_1 830767 ns/iter (± 346) 834781 ns/iter (± 474) 1.00
css/parser/bootstrap_5_1_3 21648849 ns/iter (± 42791) 21875527 ns/iter (± 54950) 0.99
css/parser/foundation_6_7_4 17369467 ns/iter (± 149930) 17460567 ns/iter (± 69697) 0.99
css/parser/tailwind_3_1_1 3322294 ns/iter (± 6170) 3322910 ns/iter (± 2614) 1.00
es/codegen/colors 327453 ns/iter (± 184398) 319452 ns/iter (± 179088) 1.03
es/codegen/large 1233084 ns/iter (± 647532) 1225202 ns/iter (± 639120) 1.01
es/codegen/with-parser/colors 47908 ns/iter (± 306) 48183 ns/iter (± 362) 0.99
es/codegen/with-parser/large 522545 ns/iter (± 1360) 525773 ns/iter (± 2060) 0.99
es/minify/libraries/antd 1584220496 ns/iter (± 36704098) 1545757256 ns/iter (± 17858773) 1.02
es/minify/libraries/d3 268325926 ns/iter (± 6003704) 273971206 ns/iter (± 4175394) 0.98
es/minify/libraries/echarts 1141545573 ns/iter (± 41306503) 1161942659 ns/iter (± 10403345) 0.98
es/minify/libraries/jquery 80412533 ns/iter (± 519972) 80312961 ns/iter (± 642906) 1.00
es/minify/libraries/lodash 96066467 ns/iter (± 820916) 97434043 ns/iter (± 2894731) 0.99
es/minify/libraries/moment 46344112 ns/iter (± 290693) 46736398 ns/iter (± 293083) 0.99
es/minify/libraries/react 17478601 ns/iter (± 158497) 17306932 ns/iter (± 116548) 1.01
es/minify/libraries/terser 211989427 ns/iter (± 2547002) 220573212 ns/iter (± 2164111) 0.96
es/minify/libraries/three 386852435 ns/iter (± 10518837) 395700799 ns/iter (± 6984398) 0.98
es/minify/libraries/typescript 2759088285 ns/iter (± 19310311) 2837442368 ns/iter (± 13800844) 0.97
es/minify/libraries/victory 603213959 ns/iter (± 13758514) 614486075 ns/iter (± 9684823) 0.98
es/minify/libraries/vue 118669053 ns/iter (± 1213202) 120369395 ns/iter (± 1253504) 0.99
es/visitor/compare/clone 2367455 ns/iter (± 15554) 2363544 ns/iter (± 18524) 1.00
es/visitor/compare/visit_mut_span 2775392 ns/iter (± 11935) 2805627 ns/iter (± 6105) 0.99
es/visitor/compare/visit_mut_span_panic 2808677 ns/iter (± 8473) 2853581 ns/iter (± 6661) 0.98
es/visitor/compare/fold_span 3915282 ns/iter (± 9738) 3966402 ns/iter (± 13364) 0.99
es/visitor/compare/fold_span_panic 4069358 ns/iter (± 6456) 4122547 ns/iter (± 29017) 0.99
es/lexer/colors 16293 ns/iter (± 9) 16351 ns/iter (± 116) 1.00
es/lexer/angular 7837291 ns/iter (± 10852) 7862458 ns/iter (± 8204) 1.00
es/lexer/backbone 1008471 ns/iter (± 437) 1014441 ns/iter (± 842) 0.99
es/lexer/jquery 5603377 ns/iter (± 3521) 5619484 ns/iter (± 4827) 1.00
es/lexer/jquery mobile 8628674 ns/iter (± 14759) 8660777 ns/iter (± 7136) 1.00
es/lexer/mootools 4419170 ns/iter (± 4227) 4444737 ns/iter (± 3949) 0.99
es/lexer/underscore 847354 ns/iter (± 595) 845803 ns/iter (± 627) 1.00
es/lexer/three 26114967 ns/iter (± 21737) 26249287 ns/iter (± 24525) 0.99
es/lexer/yui 4808084 ns/iter (± 2131) 4833112 ns/iter (± 4044) 0.99
es/parser/colors 30605 ns/iter (± 52) 30402 ns/iter (± 78) 1.01
es/parser/angular 15906574 ns/iter (± 221987) 15958669 ns/iter (± 170673) 1.00
es/parser/backbone 2296129 ns/iter (± 14288) 2312591 ns/iter (± 16219) 0.99
es/parser/jquery 12428305 ns/iter (± 58640) 12487510 ns/iter (± 134329) 1.00
es/parser/jquery mobile 19837722 ns/iter (± 403291) 19934913 ns/iter (± 421330) 1.00
es/parser/mootools 9498688 ns/iter (± 27105) 9501988 ns/iter (± 22198) 1.00
es/parser/underscore 1948748 ns/iter (± 14028) 1953878 ns/iter (± 12916) 1.00
es/parser/three 58864421 ns/iter (± 414255) 58980068 ns/iter (± 359489) 1.00
es/parser/yui 9550234 ns/iter (± 48865) 9579076 ns/iter (± 75130) 1.00
es/preset-env/usage/builtin_type 143510 ns/iter (± 33705) 143731 ns/iter (± 32569) 1.00
es/preset-env/usage/property 21065 ns/iter (± 97) 21327 ns/iter (± 72) 0.99
es/resolver/typescript 126740377 ns/iter (± 3268328) 124900516 ns/iter (± 1473000) 1.01
es/fixer/typescript 98060722 ns/iter (± 1654646) 98090664 ns/iter (± 754358) 1.00
es/hygiene/typescript 206197040 ns/iter (± 1472388) 213517510 ns/iter (± 2122296) 0.97
es/resolver_with_hygiene/typescript 343357500 ns/iter (± 1832561) 351302048 ns/iter (± 2110634) 0.98
es/visitor/base-perf/module_clone 76554 ns/iter (± 1800) 77751 ns/iter (± 1602) 0.98
es/visitor/base-perf/fold_empty 86241 ns/iter (± 812) 87321 ns/iter (± 1423) 0.99
es/visitor/base-perf/fold_noop_impl_all 86620 ns/iter (± 1593) 86940 ns/iter (± 1056) 1.00
es/visitor/base-perf/fold_noop_impl_vec 86852 ns/iter (± 1787) 86641 ns/iter (± 1368) 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 59 ns/iter (± 0) 59 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 103 ns/iter (± 0) 105 ns/iter (± 1) 0.98
es/visitor/base-perf/boxing_unboxed 102 ns/iter (± 0) 104 ns/iter (± 0) 0.98
es/visitor/base-perf/visit_contains_this 3410 ns/iter (± 39) 3559 ns/iter (± 75) 0.96
es/base/parallel/resolver/typescript 5699382005 ns/iter (± 445201509) 5612768424 ns/iter (± 543329997) 1.02
es/base/parallel/hygiene/typescript 2384874644 ns/iter (± 34197988) 2426129918 ns/iter (± 20503266) 0.98
misc/visitors/time-complexity/time 5 101 ns/iter (± 0) 102 ns/iter (± 0) 0.99
misc/visitors/time-complexity/time 10 335 ns/iter (± 2) 332 ns/iter (± 0) 1.01
misc/visitors/time-complexity/time 15 643 ns/iter (± 0) 664 ns/iter (± 19) 0.97
misc/visitors/time-complexity/time 20 1205 ns/iter (± 0) 1218 ns/iter (± 5) 0.99
misc/visitors/time-complexity/time 40 6567 ns/iter (± 1) 6621 ns/iter (± 21) 0.99
misc/visitors/time-complexity/time 60 17340 ns/iter (± 56) 16989 ns/iter (± 17) 1.02
es/full-target/es2016 187686 ns/iter (± 385) 187158 ns/iter (± 508) 1.00
es/full-target/es2017 182499 ns/iter (± 359) 182234 ns/iter (± 384) 1.00
es/full-target/es2018 172019 ns/iter (± 364) 171447 ns/iter (± 1552) 1.00
es2020_nullish_coalescing 66903 ns/iter (± 106) 66921 ns/iter (± 134) 1.00
es2020_optional_chaining 95651 ns/iter (± 198) 95862 ns/iter (± 1343) 1.00
es2022_class_properties 93966 ns/iter (± 159) 93956 ns/iter (± 195) 1.00
es2018_object_rest_spread 71360 ns/iter (± 141) 71245 ns/iter (± 170) 1.00
es2019_optional_catch_binding 61036 ns/iter (± 103) 61411 ns/iter (± 109) 0.99
es2017_async_to_generator 61272 ns/iter (± 82) 61496 ns/iter (± 137) 1.00
es2016_exponentiation 64885 ns/iter (± 175) 65259 ns/iter (± 160) 0.99
es2015_arrow 69868 ns/iter (± 198) 70488 ns/iter (± 260) 0.99
es2015_block_scoped_fn 66110 ns/iter (± 134) 66287 ns/iter (± 124) 1.00
es2015_block_scoping 138655 ns/iter (± 10559) 157129 ns/iter (± 7378) 0.88
es2015_classes 116819 ns/iter (± 354) 117766 ns/iter (± 395) 0.99
es2015_computed_props 60862 ns/iter (± 105) 60953 ns/iter (± 105) 1.00
es2015_destructuring 116801 ns/iter (± 317) 117134 ns/iter (± 181) 1.00
es2015_duplicate_keys 63464 ns/iter (± 98) 63465 ns/iter (± 126) 1.00
es2015_parameters 79549 ns/iter (± 91) 79563 ns/iter (± 90) 1.00
es2015_fn_name 65914 ns/iter (± 461) 66676 ns/iter (± 527) 0.99
es2015_for_of 63693 ns/iter (± 102) 64086 ns/iter (± 178) 0.99
es2015_instanceof 63205 ns/iter (± 81) 63050 ns/iter (± 74) 1.00
es2015_shorthand_property 60875 ns/iter (± 102) 60973 ns/iter (± 118) 1.00
es2015_spread 60817 ns/iter (± 110) 61040 ns/iter (± 133) 1.00
es2015_sticky_regex 61901 ns/iter (± 100) 62465 ns/iter (± 144) 0.99
es2015_typeof_symbol 61862 ns/iter (± 119) 62451 ns/iter (± 163) 0.99
es/transform/baseline/base 51602 ns/iter (± 89) 51704 ns/iter (± 82) 1.00
es/transform/baseline/common_reserved_word 62424 ns/iter (± 62) 62346 ns/iter (± 106) 1.00
es/transform/baseline/common_typescript 146267 ns/iter (± 6844) 142700 ns/iter (± 273) 1.02
es/target/es3 168800 ns/iter (± 310) 171010 ns/iter (± 171) 0.99
es/target/es2015 630689 ns/iter (± 1246) 632165 ns/iter (± 1768) 1.00
es/target/es2016 65071 ns/iter (± 146) 65196 ns/iter (± 189) 1.00
es/target/es2017 61590 ns/iter (± 95) 61567 ns/iter (± 124) 1.00
es/target/es2018 81190 ns/iter (± 155) 81328 ns/iter (± 113) 1.00
es/target/es2020 133573 ns/iter (± 225) 133046 ns/iter (± 269) 1.00
babelify-only 672149 ns/iter (± 2947) 671407 ns/iter (± 1429) 1.00
parse_and_babelify_angular 43635241 ns/iter (± 768030) 45573061 ns/iter (± 801020) 0.96
parse_and_babelify_backbone 5433333 ns/iter (± 48175) 5592988 ns/iter (± 43971) 0.97
parse_and_babelify_jquery 31879412 ns/iter (± 371668) 34063279 ns/iter (± 578978) 0.94
parse_and_babelify_jquery_mobile 54801296 ns/iter (± 907102) 57502541 ns/iter (± 671418) 0.95
parse_and_babelify_mootools 33711719 ns/iter (± 535098) 35262322 ns/iter (± 464812) 0.96
parse_and_babelify_underscore 4380415 ns/iter (± 18023) 4417746 ns/iter (± 25956) 0.99
parse_and_babelify_yui 33790605 ns/iter (± 1164240) 35594408 ns/iter (± 1017809) 0.95
html/minify/document/css_spec 41781665 ns/iter (± 229039) 42612935 ns/iter (± 377398) 0.98
html/minify/document/github 17567649 ns/iter (± 21973) 17599394 ns/iter (± 47275) 1.00
html/minify/document/stackoverflow 15812270 ns/iter (± 19721) 15839210 ns/iter (± 68160) 1.00
html/minify/document_fragment/css_spec 39797378 ns/iter (± 194123) 41222927 ns/iter (± 545359) 0.97
html/minify/document_fragment/github 16809864 ns/iter (± 22805) 16935351 ns/iter (± 75781) 0.99
html/minify/document_fragment/stackoverflow 15301310 ns/iter (± 17921) 15421112 ns/iter (± 52364) 0.99
html/document/visitor/compare/clone 337734 ns/iter (± 2252) 340096 ns/iter (± 1781) 0.99
html/document/visitor/compare/visit_mut_span 366220 ns/iter (± 1790) 363562 ns/iter (± 2419) 1.01
html/document/visitor/compare/visit_mut_span_panic 375962 ns/iter (± 1369) 371225 ns/iter (± 2027) 1.01
html/document/visitor/compare/fold_span 403090 ns/iter (± 2090) 405759 ns/iter (± 2183) 0.99
html/document/visitor/compare/fold_span_panic 460241 ns/iter (± 1948) 461442 ns/iter (± 2675) 1.00
html/document_fragment/visitor/compare/clone 332370 ns/iter (± 1540) 340988 ns/iter (± 2339) 0.97
html/document_fragment/visitor/compare/visit_mut_span 365473 ns/iter (± 2213) 359979 ns/iter (± 2153) 1.02
html/document_fragment/visitor/compare/visit_mut_span_panic 374530 ns/iter (± 1356) 371904 ns/iter (± 2104) 1.01
html/document_fragment/visitor/compare/fold_span 403198 ns/iter (± 2063) 402860 ns/iter (± 2234) 1.00
html/document_fragment/visitor/compare/fold_span_panic 462535 ns/iter (± 965) 464771 ns/iter (± 2527) 1.00
html/lexer/css_2021_spec 15523506 ns/iter (± 20604) 15623532 ns/iter (± 16852) 0.99
html/lexer/github_com_17_05_2022 6023180 ns/iter (± 3784) 6043949 ns/iter (± 5414) 1.00
html/lexer/stackoverflow_com_17_05_2022 5629210 ns/iter (± 4048) 5666200 ns/iter (± 55108) 0.99
html/parser/parser_document/css_2021_spec 25567545 ns/iter (± 275362) 25841970 ns/iter (± 211624) 0.99
html/parser/parser_document/github_com_17_05_2022 8737190 ns/iter (± 15296) 8747701 ns/iter (± 9853) 1.00
html/parser/parser_document/stackoverflow_com_17_05_2022 7687277 ns/iter (± 15318) 7726041 ns/iter (± 6118) 0.99
html/parser/parser_document_fragment/css_2021_spec 25494844 ns/iter (± 152034) 26014374 ns/iter (± 223211) 0.98
html/parser/parser_document_fragment/github_com_17_05_2022 8755638 ns/iter (± 12359) 8809613 ns/iter (± 31967) 0.99
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7702084 ns/iter (± 10420) 7755072 ns/iter (± 8756) 0.99

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

Please sign in to comment.