Skip to content

Commit

Permalink
fix(bindings/node): Support TsSatisfiesExpression (#7317)
Browse files Browse the repository at this point in the history
  • Loading branch information
voorjaar committed Apr 24, 2023
1 parent 2c441f5 commit 761ef83
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 8 deletions.
25 changes: 17 additions & 8 deletions node-swc/src/Visitor.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
import {
Accessibility,
Argument,
ArrayExpression,
ArrayPattern,
ArrowFunctionExpression,
Argument,
AssignmentExpression,
AssignmentPattern,
AssignmentPatternProperty,
AssignmentProperty,
AwaitExpression,
BigIntLiteral,
BinaryExpression,
BindingIdentifier,
BlockStatement,
BooleanLiteral,
BreakStatement,
Expand Down Expand Up @@ -40,6 +41,7 @@ import {
ExportNamedDeclaration,
ExportNamespaceSpecifier,
ExportSpecifier,
ExprOrSpread,
Expression,
ExpressionStatement,
Fn,
Expand All @@ -51,14 +53,15 @@ import {
GetterProperty,
Identifier,
IfStatement,
Import,
ImportDeclaration,
ImportDefaultSpecifier,
ImportNamespaceSpecifier,
ImportSpecifier,
JSXAttrValue,
JSXAttribute,
JSXAttributeName,
JSXAttributeOrSpread,
JSXAttrValue,
JSXClosingElement,
JSXClosingFragment,
JSXElement,
Expand Down Expand Up @@ -94,6 +97,7 @@ import {
ObjectPatternProperty,
OptionalChainingCall,
OptionalChainingExpression,
Param,
ParenthesisExpression,
Pattern,
PrivateMethod,
Expand All @@ -113,6 +117,7 @@ import {
StaticBlock,
StringLiteral,
Super,
SuperPropExpression,
SwitchCase,
SwitchStatement,
TaggedTemplateExpression,
Expand All @@ -122,6 +127,7 @@ import {
TryStatement,
TsAsExpression,
TsCallSignatureDeclaration,
TsConstAssertion,
TsConstructSignatureDeclaration,
TsEntityName,
TsEnumDeclaration,
Expand Down Expand Up @@ -150,6 +156,7 @@ import {
TsParameterPropertyParameter,
TsPropertySignature,
TsQualifiedName,
TsSatisfiesExpression,
TsSetterSignature,
TsType,
TsTypeAliasDeclaration,
Expand All @@ -166,12 +173,6 @@ import {
WhileStatement,
WithStatement,
YieldExpression,
Param,
ExprOrSpread,
TsConstAssertion,
Import,
SuperPropExpression,
BindingIdentifier,
} from "./types";

export class Visitor {
Expand Down Expand Up @@ -1143,6 +1144,8 @@ export class Visitor {
return this.visitThisExpression(n);
case "TsAsExpression":
return this.visitTsAsExpression(n);
case "TsSatisfiesExpression":
return this.visitTsSatisfiesExpression(n);
case "TsNonNullExpression":
return this.visitTsNonNullExpression(n);
case "TsTypeAssertion":
Expand Down Expand Up @@ -1246,6 +1249,12 @@ export class Visitor {
return n;
}

visitTsSatisfiesExpression(n: TsSatisfiesExpression): Expression {
n.expression = this.visitExpression(n.expression);
n.typeAnnotation = this.visitTsType(n.typeAnnotation);
return n;
}

visitThisExpression(n: ThisExpression): Expression {
return n;
}
Expand Down
8 changes: 8 additions & 0 deletions node-swc/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1330,6 +1330,7 @@ export type Expression =
| TsConstAssertion
| TsNonNullExpression
| TsAsExpression
| TsSatisfiesExpression
| TsInstantiation
| PrivateName
| OptionalChainingExpression
Expand Down Expand Up @@ -2768,6 +2769,13 @@ export interface TsAsExpression extends ExpressionBase {
typeAnnotation: TsType;
}

export interface TsSatisfiesExpression extends ExpressionBase {
type: "TsSatisfiesExpression";

expression: Expression;
typeAnnotation: TsType;
}

export interface TsInstantiation extends Node, HasSpan {
type: "TsInstantiation";

Expand Down

1 comment on commit 761ef83

@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: 761ef83 Previous: 6f81cb9 Ratio
es/full/bugs-1 309182 ns/iter (± 12165) 298682 ns/iter (± 7314) 1.04
es/full/minify/libraries/antd 1568046631 ns/iter (± 18011888) 1369156432 ns/iter (± 17100427) 1.15
es/full/minify/libraries/d3 295099170 ns/iter (± 8993416) 268407060 ns/iter (± 5417036) 1.10
es/full/minify/libraries/echarts 1206936492 ns/iter (± 6582542) 1048796817 ns/iter (± 17084084) 1.15
es/full/minify/libraries/jquery 90853215 ns/iter (± 707212) 85167318 ns/iter (± 712265) 1.07
es/full/minify/libraries/lodash 106105297 ns/iter (± 791142) 101428365 ns/iter (± 1060138) 1.05
es/full/minify/libraries/moment 52651533 ns/iter (± 249529) 49870910 ns/iter (± 428219) 1.06
es/full/minify/libraries/react 19119271 ns/iter (± 139412) 18420936 ns/iter (± 168343) 1.04
es/full/minify/libraries/terser 247026275 ns/iter (± 2574607) 220453843 ns/iter (± 3009272) 1.12
es/full/minify/libraries/three 437279706 ns/iter (± 3231782) 386158596 ns/iter (± 7165439) 1.13
es/full/minify/libraries/typescript 2959591166 ns/iter (± 17988186) 2715005724 ns/iter (± 14949120) 1.09
es/full/minify/libraries/victory 655948708 ns/iter (± 7386920) 579026780 ns/iter (± 7113930) 1.13
es/full/minify/libraries/vue 130145021 ns/iter (± 2536339) 120408762 ns/iter (± 973998) 1.08
es/full/codegen/es3 29053 ns/iter (± 44) 27166 ns/iter (± 80) 1.07
es/full/codegen/es5 29141 ns/iter (± 43) 27565 ns/iter (± 147) 1.06
es/full/codegen/es2015 29055 ns/iter (± 40) 27340 ns/iter (± 198) 1.06
es/full/codegen/es2016 29124 ns/iter (± 35) 27296 ns/iter (± 172) 1.07
es/full/codegen/es2017 29091 ns/iter (± 44) 27157 ns/iter (± 150) 1.07
es/full/codegen/es2018 29092 ns/iter (± 38) 27777 ns/iter (± 198) 1.05
es/full/codegen/es2019 29105 ns/iter (± 46) 27573 ns/iter (± 208) 1.06
es/full/codegen/es2020 29146 ns/iter (± 244) 27678 ns/iter (± 207) 1.05
es/full/all/es3 177832805 ns/iter (± 3688602) 179152964 ns/iter (± 2676870) 0.99
es/full/all/es5 171979447 ns/iter (± 2456593) 173698347 ns/iter (± 2645336) 0.99
es/full/all/es2015 134030963 ns/iter (± 1714908) 131883115 ns/iter (± 1325338) 1.02
es/full/all/es2016 131548621 ns/iter (± 1547715) 129746010 ns/iter (± 1178461) 1.01
es/full/all/es2017 130555733 ns/iter (± 3246585) 127003044 ns/iter (± 1282126) 1.03
es/full/all/es2018 124976260 ns/iter (± 1362217) 122620660 ns/iter (± 1907576) 1.02
es/full/all/es2019 124074261 ns/iter (± 1361636) 121539020 ns/iter (± 593826) 1.02
es/full/all/es2020 118186808 ns/iter (± 1319026) 116239758 ns/iter (± 1054062) 1.02
es/full/parser 511692 ns/iter (± 7769) 490953 ns/iter (± 6833) 1.04
es/full/base/fixer 23300 ns/iter (± 26) 21726 ns/iter (± 111) 1.07
es/full/base/resolver_and_hygiene 87456 ns/iter (± 82) 84447 ns/iter (± 743) 1.04
serialization of serde 121 ns/iter (± 0) 116 ns/iter (± 1) 1.04
css/minify/libraries/bootstrap 27777283 ns/iter (± 134565) 26565131 ns/iter (± 219825) 1.05
css/visitor/compare/clone 2123377 ns/iter (± 21665) 2007802 ns/iter (± 33270) 1.06
css/visitor/compare/visit_mut_span 2309278 ns/iter (± 5467) 2176085 ns/iter (± 18093) 1.06
css/visitor/compare/visit_mut_span_panic 2372662 ns/iter (± 9074) 2254019 ns/iter (± 9458) 1.05
css/visitor/compare/fold_span 3086581 ns/iter (± 13377) 2908688 ns/iter (± 26437) 1.06
css/visitor/compare/fold_span_panic 3229340 ns/iter (± 10321) 3043718 ns/iter (± 18494) 1.06
css/lexer/bootstrap_5_1_3 5129075 ns/iter (± 11016) 4926547 ns/iter (± 49942) 1.04
css/lexer/foundation_6_7_4 4323049 ns/iter (± 3331) 4099044 ns/iter (± 30273) 1.05
css/lexer/tailwind_3_1_1 819973 ns/iter (± 534) 779910 ns/iter (± 5963) 1.05
css/parser/bootstrap_5_1_3 20931473 ns/iter (± 57540) 19739426 ns/iter (± 178302) 1.06
css/parser/foundation_6_7_4 16710070 ns/iter (± 47831) 15700902 ns/iter (± 110738) 1.06
css/parser/tailwind_3_1_1 3222954 ns/iter (± 3197) 3060653 ns/iter (± 7005) 1.05
es/codegen/colors 327235 ns/iter (± 184917) 322730 ns/iter (± 182443) 1.01
es/codegen/large 1247376 ns/iter (± 654252) 1175797 ns/iter (± 613928) 1.06
es/codegen/with-parser/colors 47591 ns/iter (± 253) 45577 ns/iter (± 931) 1.04
es/codegen/with-parser/large 514007 ns/iter (± 2009) 495796 ns/iter (± 6679) 1.04
es/minify/libraries/antd 1383552453 ns/iter (± 16178527) 1214560278 ns/iter (± 19286360) 1.14
es/minify/libraries/d3 256050025 ns/iter (± 3101497) 230755735 ns/iter (± 1828151) 1.11
es/minify/libraries/echarts 1051813843 ns/iter (± 10274976) 910304981 ns/iter (± 7465745) 1.16
es/minify/libraries/jquery 79023663 ns/iter (± 646815) 75209682 ns/iter (± 728824) 1.05
es/minify/libraries/lodash 95017182 ns/iter (± 1370336) 90452147 ns/iter (± 781286) 1.05
es/minify/libraries/moment 45966137 ns/iter (± 620287) 43334077 ns/iter (± 276442) 1.06
es/minify/libraries/react 17054616 ns/iter (± 115657) 16450806 ns/iter (± 149022) 1.04
es/minify/libraries/terser 209461615 ns/iter (± 3046363) 190284898 ns/iter (± 1296366) 1.10
es/minify/libraries/three 361746451 ns/iter (± 4435929) 317561756 ns/iter (± 3211619) 1.14
es/minify/libraries/typescript 2517367390 ns/iter (± 13819987) 2279367627 ns/iter (± 13949435) 1.10
es/minify/libraries/victory 573692338 ns/iter (± 4218578) 488938660 ns/iter (± 5760698) 1.17
es/minify/libraries/vue 115915304 ns/iter (± 961323) 108424771 ns/iter (± 651653) 1.07
es/visitor/compare/clone 2343157 ns/iter (± 12903) 2265997 ns/iter (± 32672) 1.03
es/visitor/compare/visit_mut_span 2711972 ns/iter (± 6652) 2583532 ns/iter (± 17821) 1.05
es/visitor/compare/visit_mut_span_panic 2751535 ns/iter (± 6333) 2624907 ns/iter (± 12190) 1.05
es/visitor/compare/fold_span 3849689 ns/iter (± 5679) 3676133 ns/iter (± 38451) 1.05
es/visitor/compare/fold_span_panic 3973240 ns/iter (± 8290) 3811889 ns/iter (± 24264) 1.04
es/lexer/colors 13254 ns/iter (± 20) 13085 ns/iter (± 127) 1.01
es/lexer/angular 6387582 ns/iter (± 3295) 6215864 ns/iter (± 67664) 1.03
es/lexer/backbone 786851 ns/iter (± 381) 775528 ns/iter (± 3254) 1.01
es/lexer/jquery 4408557 ns/iter (± 1865) 4297941 ns/iter (± 16082) 1.03
es/lexer/jquery mobile 6876934 ns/iter (± 23154) 6778942 ns/iter (± 48888) 1.01
es/lexer/mootools 3454019 ns/iter (± 990) 3389645 ns/iter (± 19463) 1.02
es/lexer/underscore 650108 ns/iter (± 170) 636996 ns/iter (± 3404) 1.02
es/lexer/three 20822240 ns/iter (± 19226) 20630200 ns/iter (± 178906) 1.01
es/lexer/yui 3854552 ns/iter (± 1448) 3770912 ns/iter (± 21870) 1.02
es/parser/colors 28862 ns/iter (± 148) 27756 ns/iter (± 287) 1.04
es/parser/angular 15040006 ns/iter (± 161465) 14136148 ns/iter (± 126792) 1.06
es/parser/backbone 2181165 ns/iter (± 12026) 2029585 ns/iter (± 21052) 1.07
es/parser/jquery 11796411 ns/iter (± 92956) 11041751 ns/iter (± 123077) 1.07
es/parser/jquery mobile 18691448 ns/iter (± 187386) 17911686 ns/iter (± 115285) 1.04
es/parser/mootools 8983915 ns/iter (± 41500) 8829646 ns/iter (± 42499) 1.02
es/parser/underscore 1835880 ns/iter (± 11633) 1816869 ns/iter (± 151413) 1.01
es/parser/three 55073037 ns/iter (± 217502) 47161291 ns/iter (± 440745) 1.17
es/parser/yui 9046876 ns/iter (± 56652) 8577743 ns/iter (± 65304) 1.05
es/preset-env/usage/builtin_type 141153 ns/iter (± 34481) 137852 ns/iter (± 35493) 1.02
es/preset-env/usage/property 19677 ns/iter (± 63) 18937 ns/iter (± 114) 1.04
es/resolver/typescript 115034506 ns/iter (± 1794118) 103738002 ns/iter (± 2797665) 1.11
es/fixer/typescript 82502035 ns/iter (± 859301) 72559321 ns/iter (± 867943) 1.14
es/hygiene/typescript 174558339 ns/iter (± 2220687) 156220778 ns/iter (± 1189005) 1.12
es/resolver_with_hygiene/typescript 323237090 ns/iter (± 1358029) 280999427 ns/iter (± 1964456) 1.15
es/visitor/base-perf/module_clone 81275 ns/iter (± 398) 80254 ns/iter (± 1633) 1.01
es/visitor/base-perf/fold_empty 91514 ns/iter (± 348) 87780 ns/iter (± 712) 1.04
es/visitor/base-perf/fold_noop_impl_all 91132 ns/iter (± 870) 88541 ns/iter (± 739) 1.03
es/visitor/base-perf/fold_noop_impl_vec 91435 ns/iter (± 298) 88463 ns/iter (± 540) 1.03
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 54 ns/iter (± 0) 1.04
es/visitor/base-perf/boxing_unboxed_clone 41 ns/iter (± 0) 39 ns/iter (± 0) 1.05
es/visitor/base-perf/boxing_boxed 101 ns/iter (± 0) 99 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed 81 ns/iter (± 0) 77 ns/iter (± 0) 1.05
es/visitor/base-perf/visit_contains_this 3510 ns/iter (± 61) 3467 ns/iter (± 98) 1.01
es/base/parallel/resolver/typescript 5922741883 ns/iter (± 415294119) 5793678663 ns/iter (± 418741655) 1.02
es/base/parallel/hygiene/typescript 1999304818 ns/iter (± 30356711) 1964287489 ns/iter (± 21493151) 1.02
misc/visitors/time-complexity/time 5 111 ns/iter (± 0) 92 ns/iter (± 0) 1.21
misc/visitors/time-complexity/time 10 352 ns/iter (± 0) 315 ns/iter (± 3) 1.12
misc/visitors/time-complexity/time 15 669 ns/iter (± 3) 602 ns/iter (± 6) 1.11
misc/visitors/time-complexity/time 20 1229 ns/iter (± 0) 1191 ns/iter (± 57) 1.03
misc/visitors/time-complexity/time 40 5995 ns/iter (± 39) 6039 ns/iter (± 89) 0.99
misc/visitors/time-complexity/time 60 13307 ns/iter (± 1) 13472 ns/iter (± 100) 0.99
es/full-target/es2016 253427 ns/iter (± 481) 247607 ns/iter (± 2119) 1.02
es/full-target/es2017 245738 ns/iter (± 530) 233902 ns/iter (± 902) 1.05
es/full-target/es2018 234840 ns/iter (± 183) 225054 ns/iter (± 1733) 1.04
es2020_nullish_coalescing 93054 ns/iter (± 263) 89017 ns/iter (± 1153) 1.05
es2020_optional_chaining 124693 ns/iter (± 237) 117569 ns/iter (± 864) 1.06
es2022_class_properties 148885 ns/iter (± 366) 143066 ns/iter (± 1108) 1.04
es2018_object_rest_spread 95779 ns/iter (± 281) 91310 ns/iter (± 1246) 1.05
es2019_optional_catch_binding 85235 ns/iter (± 172) 80649 ns/iter (± 369) 1.06
es2017_async_to_generator 85845 ns/iter (± 201) 81611 ns/iter (± 789) 1.05
es2016_exponentiation 90489 ns/iter (± 198) 85725 ns/iter (± 340) 1.06
es2015_arrow 93589 ns/iter (± 260) 89896 ns/iter (± 833) 1.04
es2015_block_scoped_fn 91984 ns/iter (± 237) 87557 ns/iter (± 422) 1.05
es2015_block_scoping 169708 ns/iter (± 592) 163774 ns/iter (± 1344) 1.04

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

Please sign in to comment.