-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(es/typescript): Handle
DeclareCollect
correctly (#8008)
**Related issue:** - Closes #8007
- Loading branch information
1 parent
78e1259
commit 9d08b8a
Showing
5 changed files
with
139 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
63 changes: 63 additions & 0 deletions
63
crates/swc_ecma_transforms_typescript/tests/fixture/issue-8007/1/input.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
import { useMemo } from "react"; | ||
import { type SerializedStyles, type Theme, css } from "@emotion/react"; | ||
import { type Breakpoint, theme } from "antd"; | ||
|
||
import { useMediaQuery } from "./hooks"; | ||
|
||
export { type Breakpoint } from "antd"; | ||
|
||
export const getMQ = (token: Theme["token"]) => ({ | ||
xsMin: `@media (min-width: ${token.screenXSMin}px)`, | ||
xsMax: `@media (max-width: ${token.screenXSMax}px)`, | ||
smMin: `@media (min-width: ${token.screenSMMin}px)`, | ||
smMax: `@media (max-width: ${token.screenSMMax}px)`, | ||
mdMin: `@media (min-width: ${token.screenMDMin}px)`, | ||
mdMax: `@media (max-width: ${token.screenMDMax}px)`, | ||
lgMin: `@media (min-width: ${token.screenLGMin}px)`, | ||
lgMax: `@media (max-width: ${token.screenLGMax}px)`, | ||
xlMin: `@media (min-width: ${token.screenXLMin}px)`, | ||
xlMax: `@media (max-width: ${token.screenXLMax}px)`, | ||
xxlMin: `@media (min-width: ${token.screenXXLMin}px)`, | ||
}); | ||
|
||
export const useBreakpoint = (breakpoint: Breakpoint) => { | ||
const { token } = theme.useToken(); | ||
|
||
const query = useMemo(() => { | ||
const key = | ||
breakpoint === "xs" | ||
? "xsMax" | ||
: (`${breakpoint}Min` satisfies `${Breakpoint}Min`); | ||
|
||
return getMQ(token)[key].replace("@media ", ""); | ||
}, [breakpoint, token]); | ||
|
||
return useMediaQuery(query); | ||
}; | ||
|
||
export const createStyles = < | ||
T extends Record< | ||
string, | ||
SerializedStyles | ((theme: Theme) => SerializedStyles) | ||
> | ||
>( | ||
arg: T | ||
) => arg; | ||
|
||
/** | ||
* Reusable styles | ||
*/ | ||
|
||
export const centeredCss = css({ | ||
display: "grid", | ||
placeContent: "center", | ||
height: "100%", | ||
}); | ||
|
||
export const fullVPHeightCss = css({ | ||
height: "100vh", | ||
}); | ||
|
||
export const noMargin = css({ | ||
margin: "0 !important", | ||
}); |
42 changes: 42 additions & 0 deletions
42
crates/swc_ecma_transforms_typescript/tests/fixture/issue-8007/1/output.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
import { useMemo } from "react"; | ||
import { css } from "@emotion/react"; | ||
import { theme } from "antd"; | ||
import { useMediaQuery } from "./hooks"; | ||
export const getMQ = (token)=>({ | ||
xsMin: `@media (min-width: ${token.screenXSMin}px)`, | ||
xsMax: `@media (max-width: ${token.screenXSMax}px)`, | ||
smMin: `@media (min-width: ${token.screenSMMin}px)`, | ||
smMax: `@media (max-width: ${token.screenSMMax}px)`, | ||
mdMin: `@media (min-width: ${token.screenMDMin}px)`, | ||
mdMax: `@media (max-width: ${token.screenMDMax}px)`, | ||
lgMin: `@media (min-width: ${token.screenLGMin}px)`, | ||
lgMax: `@media (max-width: ${token.screenLGMax}px)`, | ||
xlMin: `@media (min-width: ${token.screenXLMin}px)`, | ||
xlMax: `@media (max-width: ${token.screenXLMax}px)`, | ||
xxlMin: `@media (min-width: ${token.screenXXLMin}px)` | ||
}); | ||
export const useBreakpoint = (breakpoint)=>{ | ||
const { token } = theme.useToken(); | ||
const query = useMemo(()=>{ | ||
const key = breakpoint === "xs" ? "xsMax" : `${breakpoint}Min`; | ||
return getMQ(token)[key].replace("@media ", ""); | ||
}, [ | ||
breakpoint, | ||
token | ||
]); | ||
return useMediaQuery(query); | ||
}; | ||
export const createStyles = (arg)=>arg; | ||
/** | ||
* Reusable styles | ||
*/ export const centeredCss = css({ | ||
display: "grid", | ||
placeContent: "center", | ||
height: "100%" | ||
}); | ||
export const fullVPHeightCss = css({ | ||
height: "100vh" | ||
}); | ||
export const noMargin = css({ | ||
margin: "0 !important" | ||
}); |
9 changes: 9 additions & 0 deletions
9
crates/swc_ecma_transforms_typescript/tests/fixture/issue-8007/2/input.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
import { A } from 'mod'; | ||
|
||
const foo = < | ||
T extends ((A: any) => void), | ||
>( | ||
arg: T, | ||
) => arg; | ||
|
||
console.log(A); |
3 changes: 3 additions & 0 deletions
3
crates/swc_ecma_transforms_typescript/tests/fixture/issue-8007/2/output.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import { A } from 'mod'; | ||
const foo = (arg)=>arg; | ||
console.log(A); |
9d08b8a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark
es/full/bugs-1
282449
ns/iter (± 7509
)292516
ns/iter (± 8947
)0.97
es/full/minify/libraries/antd
1338949179
ns/iter (± 11337959
)1318265702
ns/iter (± 14442138
)1.02
es/full/minify/libraries/d3
274325218
ns/iter (± 1449043
)277606393
ns/iter (± 4855569
)0.99
es/full/minify/libraries/echarts
1067093159
ns/iter (± 5771137
)1061077829
ns/iter (± 5313346
)1.01
es/full/minify/libraries/jquery
84570412
ns/iter (± 321458
)84059914
ns/iter (± 269367
)1.01
es/full/minify/libraries/lodash
97523506
ns/iter (± 459472
)97395858
ns/iter (± 395724
)1.00
es/full/minify/libraries/moment
49801994
ns/iter (± 128396
)49899127
ns/iter (± 135451
)1.00
es/full/minify/libraries/react
18004233
ns/iter (± 19739
)17960080
ns/iter (± 70795
)1.00
es/full/minify/libraries/terser
218761213
ns/iter (± 1632454
)218424976
ns/iter (± 1026938
)1.00
es/full/minify/libraries/three
386911532
ns/iter (± 1791843
)387127503
ns/iter (± 2620053
)1.00
es/full/minify/libraries/typescript
2680623810
ns/iter (± 13570212
)2655224390
ns/iter (± 8144988
)1.01
es/full/minify/libraries/victory
578395358
ns/iter (± 3717483
)570967433
ns/iter (± 3738279
)1.01
es/full/minify/libraries/vue
119620834
ns/iter (± 378850
)119676440
ns/iter (± 396872
)1.00
es/full/codegen/es3
34170
ns/iter (± 59
)33260
ns/iter (± 78
)1.03
es/full/codegen/es5
34114
ns/iter (± 84
)33288
ns/iter (± 72
)1.02
es/full/codegen/es2015
34166
ns/iter (± 61
)33195
ns/iter (± 94
)1.03
es/full/codegen/es2016
34187
ns/iter (± 94
)33244
ns/iter (± 79
)1.03
es/full/codegen/es2017
34108
ns/iter (± 83
)33237
ns/iter (± 66
)1.03
es/full/codegen/es2018
34107
ns/iter (± 91
)33238
ns/iter (± 58
)1.03
es/full/codegen/es2019
34169
ns/iter (± 77
)33274
ns/iter (± 102
)1.03
es/full/codegen/es2020
34139
ns/iter (± 66
)33260
ns/iter (± 58
)1.03
es/full/all/es3
165401072
ns/iter (± 805762
)163263887
ns/iter (± 1234734
)1.01
es/full/all/es5
156727272
ns/iter (± 1625244
)155869875
ns/iter (± 785701
)1.01
es/full/all/es2015
117187163
ns/iter (± 498504
)116157212
ns/iter (± 840627
)1.01
es/full/all/es2016
115777913
ns/iter (± 962597
)115178018
ns/iter (± 547436
)1.01
es/full/all/es2017
115561284
ns/iter (± 820293
)114443316
ns/iter (± 1049411
)1.01
es/full/all/es2018
112947588
ns/iter (± 684187
)111936151
ns/iter (± 516555
)1.01
es/full/all/es2019
112418713
ns/iter (± 409494
)111330746
ns/iter (± 507583
)1.01
es/full/all/es2020
108720212
ns/iter (± 486187
)107229039
ns/iter (± 650779
)1.01
es/full/parser
486609
ns/iter (± 4788
)487947
ns/iter (± 5621
)1.00
es/full/base/fixer
18262
ns/iter (± 261
)17960
ns/iter (± 151
)1.02
es/full/base/resolver_and_hygiene
80597
ns/iter (± 192
)80166
ns/iter (± 93
)1.01
serialization of serde
295
ns/iter (± 0
)298
ns/iter (± 1
)0.99
css/minify/libraries/bootstrap
28354421
ns/iter (± 50094
)30096864
ns/iter (± 113336
)0.94
css/visitor/compare/clone
1687526
ns/iter (± 6366
)1679478
ns/iter (± 9700
)1.00
css/visitor/compare/visit_mut_span
1820409
ns/iter (± 7569
)1786433
ns/iter (± 7688
)1.02
css/visitor/compare/visit_mut_span_panic
1852989
ns/iter (± 3880
)1890277
ns/iter (± 9097
)0.98
css/visitor/compare/fold_span
2590169
ns/iter (± 12813
)2579837
ns/iter (± 9813
)1.00
css/visitor/compare/fold_span_panic
2768502
ns/iter (± 9198
)2772726
ns/iter (± 12140
)1.00
css/lexer/bootstrap_5_1_3
4439251
ns/iter (± 2101
)4407631
ns/iter (± 2979
)1.01
css/lexer/foundation_6_7_4
3737910
ns/iter (± 1876
)3723074
ns/iter (± 1914
)1.00
css/lexer/tailwind_3_1_1
712373
ns/iter (± 240
)707373
ns/iter (± 430
)1.01
css/parser/bootstrap_5_1_3
19399738
ns/iter (± 47235
)19519084
ns/iter (± 45458
)0.99
css/parser/foundation_6_7_4
15457488
ns/iter (± 31873
)15534832
ns/iter (± 51951
)1.00
css/parser/tailwind_3_1_1
2962325
ns/iter (± 3102
)3018001
ns/iter (± 2460
)0.98
es/codegen/colors
737893
ns/iter (± 404449
)737456
ns/iter (± 402542
)1.00
es/codegen/large
3162508
ns/iter (± 1683085
)3183347
ns/iter (± 1702964
)0.99
es/codegen/with-parser/colors
45819
ns/iter (± 431
)44740
ns/iter (± 200
)1.02
es/codegen/with-parser/large
498623
ns/iter (± 676
)484526
ns/iter (± 750
)1.03
es/minify/libraries/antd
1164663731
ns/iter (± 15049044
)1143525841
ns/iter (± 10724832
)1.02
es/minify/libraries/d3
241214164
ns/iter (± 1400502
)239388362
ns/iter (± 733882
)1.01
es/minify/libraries/echarts
913849594
ns/iter (± 6630630
)903847670
ns/iter (± 9298348
)1.01
es/minify/libraries/jquery
73566178
ns/iter (± 275219
)73016786
ns/iter (± 139473
)1.01
es/minify/libraries/lodash
87027397
ns/iter (± 257211
)86744032
ns/iter (± 334705
)1.00
es/minify/libraries/moment
43596954
ns/iter (± 183201
)43481592
ns/iter (± 37089
)1.00
es/minify/libraries/react
16091286
ns/iter (± 33296
)16002536
ns/iter (± 55721
)1.01
es/minify/libraries/terser
186656268
ns/iter (± 3704782
)185892412
ns/iter (± 909617
)1.00
es/minify/libraries/three
324846004
ns/iter (± 1266950
)320452353
ns/iter (± 1641837
)1.01
es/minify/libraries/typescript
2255133371
ns/iter (± 9122288
)2249705147
ns/iter (± 8732012
)1.00
es/minify/libraries/victory
486064502
ns/iter (± 3401312
)473957821
ns/iter (± 3109563
)1.03
es/minify/libraries/vue
106218837
ns/iter (± 372250
)105569066
ns/iter (± 538857
)1.01
es/visitor/compare/clone
1951175
ns/iter (± 3341
)1940180
ns/iter (± 5581
)1.01
es/visitor/compare/visit_mut_span
2276275
ns/iter (± 3634
)2281329
ns/iter (± 2235
)1.00
es/visitor/compare/visit_mut_span_panic
2322532
ns/iter (± 4473
)2318659
ns/iter (± 3842
)1.00
es/visitor/compare/fold_span
3362902
ns/iter (± 3599
)3369344
ns/iter (± 7006
)1.00
es/visitor/compare/fold_span_panic
3507062
ns/iter (± 10963
)3513094
ns/iter (± 8841
)1.00
es/lexer/colors
13279
ns/iter (± 22
)13146
ns/iter (± 40
)1.01
es/lexer/angular
6164048
ns/iter (± 31176
)6023162
ns/iter (± 21460
)1.02
es/lexer/backbone
791150
ns/iter (± 3777
)777852
ns/iter (± 2227
)1.02
es/lexer/jquery
4537775
ns/iter (± 12227
)4429536
ns/iter (± 6707
)1.02
es/lexer/jquery mobile
6883083
ns/iter (± 2578
)6771955
ns/iter (± 23862
)1.02
es/lexer/mootools
3567489
ns/iter (± 1864
)3512909
ns/iter (± 3145
)1.02
es/lexer/underscore
661461
ns/iter (± 1150
)656614
ns/iter (± 697
)1.01
es/lexer/three
21528075
ns/iter (± 21773
)21232527
ns/iter (± 25959
)1.01
es/lexer/yui
3783982
ns/iter (± 3906
)3774634
ns/iter (± 2919
)1.00
es/parser/colors
27006
ns/iter (± 59
)27080
ns/iter (± 76
)1.00
es/parser/angular
13502372
ns/iter (± 51171
)13438968
ns/iter (± 53327
)1.00
es/parser/backbone
1975900
ns/iter (± 8863
)1972304
ns/iter (± 9622
)1.00
es/parser/jquery
10779860
ns/iter (± 41123
)10785445
ns/iter (± 50031
)1.00
es/parser/jquery mobile
16573142
ns/iter (± 57025
)16472557
ns/iter (± 66282
)1.01
es/parser/mootools
8304665
ns/iter (± 10927
)8280729
ns/iter (± 12496
)1.00
es/parser/underscore
1700918
ns/iter (± 7716
)1701016
ns/iter (± 10011
)1.00
es/parser/three
47246676
ns/iter (± 366210
)46803634
ns/iter (± 186067
)1.01
es/parser/yui
8247681
ns/iter (± 49236
)8220009
ns/iter (± 33711
)1.00
es/preset-env/usage/builtin_type
139155
ns/iter (± 32842
)137285
ns/iter (± 32728
)1.01
es/preset-env/usage/property
16968
ns/iter (± 53
)17011
ns/iter (± 187
)1.00
es/resolver/typescript
91396691
ns/iter (± 887608
)90583553
ns/iter (± 1150988
)1.01
es/fixer/typescript
63686358
ns/iter (± 365604
)63429788
ns/iter (± 1466184
)1.00
es/hygiene/typescript
131257016
ns/iter (± 695194
)129046787
ns/iter (± 277540
)1.02
es/resolver_with_hygiene/typescript
244732517
ns/iter (± 1822223
)242665614
ns/iter (± 913117
)1.01
es/visitor/base-perf/module_clone
59092
ns/iter (± 357
)59090
ns/iter (± 832
)1.00
es/visitor/base-perf/fold_empty
62667
ns/iter (± 240
)63652
ns/iter (± 184
)0.98
es/visitor/base-perf/fold_noop_impl_all
62809
ns/iter (± 131
)63689
ns/iter (± 315
)0.99
es/visitor/base-perf/fold_noop_impl_vec
63289
ns/iter (± 346
)63976
ns/iter (± 428
)0.99
es/visitor/base-perf/boxing_boxed_clone
58
ns/iter (± 0
)56
ns/iter (± 0
)1.04
es/visitor/base-perf/boxing_unboxed_clone
39
ns/iter (± 0
)40
ns/iter (± 0
)0.97
es/visitor/base-perf/boxing_boxed
109
ns/iter (± 0
)109
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed
77
ns/iter (± 0
)78
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_empty
0
ns/iter (± 0
)0
ns/iter (± 0
)NaN
es/visitor/base-perf/visit_contains_this
2535
ns/iter (± 16
)2515
ns/iter (± 5
)1.01
es/base/parallel/resolver/typescript
4714031925
ns/iter (± 291885416
)4459789901
ns/iter (± 293980576
)1.06
es/base/parallel/hygiene/typescript
1454922214
ns/iter (± 16601214
)1455628912
ns/iter (± 14833791
)1.00
misc/visitors/time-complexity/time 5
137
ns/iter (± 0
)121
ns/iter (± 7
)1.13
misc/visitors/time-complexity/time 10
305
ns/iter (± 33
)387
ns/iter (± 1
)0.79
misc/visitors/time-complexity/time 15
600
ns/iter (± 1
)735
ns/iter (± 3
)0.82
misc/visitors/time-complexity/time 20
1169
ns/iter (± 3
)996
ns/iter (± 67
)1.17
misc/visitors/time-complexity/time 40
3561
ns/iter (± 30
)3596
ns/iter (± 39
)0.99
misc/visitors/time-complexity/time 60
8833
ns/iter (± 4
)7226
ns/iter (± 8
)1.22
This comment was automatically generated by workflow using github-action-benchmark.