-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(es/compat): Support
export class
from stage 3 decorator pass (#…
- Loading branch information
Showing
7 changed files
with
381 additions
and
233 deletions.
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
523 changes: 290 additions & 233 deletions
523
crates/swc_ecma_transforms_proposal/src/decorator_2022_03.rs
Large diffs are not rendered by default.
Oops, something went wrong.
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
19 changes: 19 additions & 0 deletions
19
crates/swc_ecma_transforms_proposal/tests/decorators/issue-7358/1/input.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,19 @@ | ||
@decorate() | ||
export class Foo { | ||
|
||
@decorate() | ||
get name() { | ||
return "hello" | ||
} | ||
|
||
@decorate() | ||
sayHi() { | ||
return "hello" | ||
} | ||
} | ||
|
||
function decorate() { | ||
return function (target, { kind }) { | ||
console.log(target, kind) | ||
} | ||
} |
3 changes: 3 additions & 0 deletions
3
crates/swc_ecma_transforms_proposal/tests/decorators/issue-7358/1/options.json
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 @@ | ||
{ | ||
"plugins": [["proposal-decorators", { "version": "2022-03" }]] | ||
} |
39 changes: 39 additions & 0 deletions
39
crates/swc_ecma_transforms_proposal/tests/decorators/issue-7358/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,39 @@ | ||
var _dec, _initClass, _dec1, _dec2, _initProto; | ||
let _Foo; | ||
_dec = decorate(), _dec1 = decorate(), _dec2 = decorate(); | ||
class Foo { | ||
static{ | ||
({ e: [_initProto] , c: [_Foo, _initClass] } = _apply_decs_2203_r(this, [ | ||
[ | ||
_dec1, | ||
3, | ||
"name" | ||
], | ||
[ | ||
_dec2, | ||
2, | ||
"sayHi" | ||
] | ||
], [ | ||
_dec | ||
])); | ||
} | ||
constructor(){ | ||
_initProto(this); | ||
} | ||
get name() { | ||
return "hello"; | ||
} | ||
sayHi() { | ||
return "hello"; | ||
} | ||
static{ | ||
_initClass(); | ||
} | ||
} | ||
function decorate() { | ||
return function(target, { kind }) { | ||
console.log(target, kind); | ||
}; | ||
} | ||
export { _Foo as Foo }; |
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
9c052db
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
292138
ns/iter (± 5320
)293488
ns/iter (± 6517
)1.00
es/full/minify/libraries/antd
1487600589
ns/iter (± 8819370
)1509891550
ns/iter (± 17803219
)0.99
es/full/minify/libraries/d3
282783411
ns/iter (± 6211756
)279251046
ns/iter (± 3756153
)1.01
es/full/minify/libraries/echarts
1129291433
ns/iter (± 17037683
)1141226246
ns/iter (± 15447131
)0.99
es/full/minify/libraries/jquery
86537568
ns/iter (± 699546
)86080021
ns/iter (± 555337
)1.01
es/full/minify/libraries/lodash
101673950
ns/iter (± 601771
)101391786
ns/iter (± 613155
)1.00
es/full/minify/libraries/moment
50121287
ns/iter (± 323937
)50464982
ns/iter (± 568992
)0.99
es/full/minify/libraries/react
18468377
ns/iter (± 91420
)18702199
ns/iter (± 151215
)0.99
es/full/minify/libraries/terser
229608022
ns/iter (± 2350062
)228976672
ns/iter (± 1999420
)1.00
es/full/minify/libraries/three
396746771
ns/iter (± 4577726
)398406323
ns/iter (± 1790062
)1.00
es/full/minify/libraries/typescript
2890800111
ns/iter (± 10533075
)2946606912
ns/iter (± 30976281
)0.98
es/full/minify/libraries/victory
601506735
ns/iter (± 10093315
)613866466
ns/iter (± 10807422
)0.98
es/full/minify/libraries/vue
123192088
ns/iter (± 1048097
)123275617
ns/iter (± 1518958
)1.00
es/full/codegen/es3
28227
ns/iter (± 284
)28131
ns/iter (± 383
)1.00
es/full/codegen/es5
28362
ns/iter (± 151
)28346
ns/iter (± 179
)1.00
es/full/codegen/es2015
27803
ns/iter (± 213
)27896
ns/iter (± 225
)1.00
es/full/codegen/es2016
27942
ns/iter (± 401
)27902
ns/iter (± 253
)1.00
es/full/codegen/es2017
27808
ns/iter (± 203
)27773
ns/iter (± 187
)1.00
es/full/codegen/es2018
27856
ns/iter (± 401
)27787
ns/iter (± 215
)1.00
es/full/codegen/es2019
27731
ns/iter (± 240
)27752
ns/iter (± 153
)1.00
es/full/codegen/es2020
28023
ns/iter (± 250
)27763
ns/iter (± 132
)1.01
es/full/all/es3
177700842
ns/iter (± 2765773
)180480928
ns/iter (± 3822481
)0.98
es/full/all/es5
169216797
ns/iter (± 3008832
)172788048
ns/iter (± 2993932
)0.98
es/full/all/es2015
129886041
ns/iter (± 1946725
)132556311
ns/iter (± 2039924
)0.98
es/full/all/es2016
127778652
ns/iter (± 1481503
)131090293
ns/iter (± 2244245
)0.97
es/full/all/es2017
126799104
ns/iter (± 1729837
)129737117
ns/iter (± 1404643
)0.98
es/full/all/es2018
122547910
ns/iter (± 1706349
)125306663
ns/iter (± 1553731
)0.98
es/full/all/es2019
120937285
ns/iter (± 1851228
)123527994
ns/iter (± 1097675
)0.98
es/full/all/es2020
114782165
ns/iter (± 965583
)116037025
ns/iter (± 799840
)0.99
es/full/parser
493253
ns/iter (± 6172
)501790
ns/iter (± 8451
)0.98
es/full/base/fixer
21853
ns/iter (± 198
)22617
ns/iter (± 63
)0.97
es/full/base/resolver_and_hygiene
83144
ns/iter (± 540
)84127
ns/iter (± 607
)0.99
serialization of serde
116
ns/iter (± 0
)118
ns/iter (± 1
)0.98
css/minify/libraries/bootstrap
25926829
ns/iter (± 150123
)26117201
ns/iter (± 220374
)0.99
css/visitor/compare/clone
2010848
ns/iter (± 15659
)2039921
ns/iter (± 17511
)0.99
css/visitor/compare/visit_mut_span
2220212
ns/iter (± 13566
)2313554
ns/iter (± 8197
)0.96
css/visitor/compare/visit_mut_span_panic
2264169
ns/iter (± 8423
)2381283
ns/iter (± 12624
)0.95
css/visitor/compare/fold_span
2943933
ns/iter (± 34262
)3064403
ns/iter (± 12976
)0.96
css/visitor/compare/fold_span_panic
3085925
ns/iter (± 13213
)3229696
ns/iter (± 47575
)0.96
css/lexer/bootstrap_5_1_3
4986642
ns/iter (± 55684
)5064403
ns/iter (± 37584
)0.98
css/lexer/foundation_6_7_4
4243765
ns/iter (± 37380
)4290440
ns/iter (± 28375
)0.99
css/lexer/tailwind_3_1_1
808967
ns/iter (± 2960
)818677
ns/iter (± 7463
)0.99
css/parser/bootstrap_5_1_3
20843155
ns/iter (± 196234
)20789147
ns/iter (± 109370
)1.00
css/parser/foundation_6_7_4
16180904
ns/iter (± 311246
)16400553
ns/iter (± 92845
)0.99
css/parser/tailwind_3_1_1
3125284
ns/iter (± 19675
)3173658
ns/iter (± 36999
)0.98
es/codegen/colors
321646
ns/iter (± 183429
)324009
ns/iter (± 184053
)0.99
es/codegen/large
1201996
ns/iter (± 646551
)1196628
ns/iter (± 619800
)1.00
es/codegen/with-parser/colors
44693
ns/iter (± 782
)45744
ns/iter (± 195
)0.98
es/codegen/with-parser/large
487816
ns/iter (± 3993
)491014
ns/iter (± 3590
)0.99
es/minify/libraries/antd
1313262709
ns/iter (± 45854747
)1292874230
ns/iter (± 16531933
)1.02
es/minify/libraries/d3
235596192
ns/iter (± 2222422
)240719303
ns/iter (± 4462374
)0.98
es/minify/libraries/echarts
963316876
ns/iter (± 9028240
)966913197
ns/iter (± 17918874
)1.00
es/minify/libraries/jquery
75372684
ns/iter (± 430274
)75799814
ns/iter (± 519881
)0.99
es/minify/libraries/lodash
91297852
ns/iter (± 308601
)91320508
ns/iter (± 446869
)1.00
es/minify/libraries/moment
43945970
ns/iter (± 307456
)43740039
ns/iter (± 373407
)1.00
es/minify/libraries/react
16591960
ns/iter (± 104385
)16759639
ns/iter (± 96854
)0.99
es/minify/libraries/terser
197149073
ns/iter (± 8276473
)194404983
ns/iter (± 1101303
)1.01
es/minify/libraries/three
326154849
ns/iter (± 2914324
)332815924
ns/iter (± 5794750
)0.98
es/minify/libraries/typescript
2456595261
ns/iter (± 12642738
)2472092541
ns/iter (± 30713583
)0.99
es/minify/libraries/victory
505019628
ns/iter (± 34792517
)524675953
ns/iter (± 7559975
)0.96
es/minify/libraries/vue
110225940
ns/iter (± 1055398
)112794867
ns/iter (± 907948
)0.98
es/visitor/compare/clone
2269724
ns/iter (± 29517
)2262188
ns/iter (± 35721
)1.00
es/visitor/compare/visit_mut_span
2610415
ns/iter (± 7695
)2587783
ns/iter (± 15339
)1.01
es/visitor/compare/visit_mut_span_panic
2654525
ns/iter (± 21396
)2630059
ns/iter (± 16727
)1.01
es/visitor/compare/fold_span
3690067
ns/iter (± 33242
)3660440
ns/iter (± 31674
)1.01
es/visitor/compare/fold_span_panic
3807376
ns/iter (± 16500
)3764488
ns/iter (± 27622
)1.01
es/lexer/colors
12722
ns/iter (± 95
)12937
ns/iter (± 182
)0.98
es/lexer/angular
6207648
ns/iter (± 72339
)6290898
ns/iter (± 52735
)0.99
es/lexer/backbone
754453
ns/iter (± 3436
)752796
ns/iter (± 7502
)1.00
es/lexer/jquery
4226885
ns/iter (± 23786
)4204819
ns/iter (± 29991
)1.01
es/lexer/jquery mobile
6582698
ns/iter (± 49144
)6640142
ns/iter (± 55666
)0.99
es/lexer/mootools
3294251
ns/iter (± 17088
)3323534
ns/iter (± 24527
)0.99
es/lexer/underscore
626271
ns/iter (± 6712
)620577
ns/iter (± 3791
)1.01
es/lexer/three
19938070
ns/iter (± 86761
)20072818
ns/iter (± 146987
)0.99
es/lexer/yui
3696571
ns/iter (± 27173
)3851219
ns/iter (± 50086
)0.96
es/parser/colors
28118
ns/iter (± 297
)28789
ns/iter (± 87
)0.98
es/parser/angular
14206134
ns/iter (± 291922
)14841104
ns/iter (± 84908
)0.96
es/parser/backbone
2071151
ns/iter (± 20659
)2174306
ns/iter (± 14500
)0.95
es/parser/jquery
11178149
ns/iter (± 90715
)11749116
ns/iter (± 137767
)0.95
es/parser/jquery mobile
17375195
ns/iter (± 113862
)18240720
ns/iter (± 67291
)0.95
es/parser/mootools
8559288
ns/iter (± 107506
)8943277
ns/iter (± 21165
)0.96
es/parser/underscore
1758261
ns/iter (± 15634
)1821671
ns/iter (± 11270
)0.97
es/parser/three
48045378
ns/iter (± 612745
)51752512
ns/iter (± 451236
)0.93
es/parser/yui
8687719
ns/iter (± 83144
)8870722
ns/iter (± 36536
)0.98
es/preset-env/usage/builtin_type
142322
ns/iter (± 36207
)135574
ns/iter (± 35484
)1.05
es/preset-env/usage/property
19317
ns/iter (± 164
)19305
ns/iter (± 173
)1.00
es/resolver/typescript
113136557
ns/iter (± 1371325
)117219213
ns/iter (± 3957621
)0.97
es/fixer/typescript
81686834
ns/iter (± 1089835
)85008463
ns/iter (± 904473
)0.96
es/hygiene/typescript
175996903
ns/iter (± 1885922
)185758651
ns/iter (± 1616357
)0.95
es/resolver_with_hygiene/typescript
315141437
ns/iter (± 2355943
)318844802
ns/iter (± 7017814
)0.99
es/visitor/base-perf/module_clone
77986
ns/iter (± 635
)79283
ns/iter (± 893
)0.98
es/visitor/base-perf/fold_empty
88348
ns/iter (± 975
)87394
ns/iter (± 680
)1.01
es/visitor/base-perf/fold_noop_impl_all
88573
ns/iter (± 1014
)87912
ns/iter (± 624
)1.01
es/visitor/base-perf/fold_noop_impl_vec
87896
ns/iter (± 555
)88385
ns/iter (± 845
)0.99
es/visitor/base-perf/boxing_boxed_clone
55
ns/iter (± 0
)55
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed_clone
40
ns/iter (± 0
)40
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
97
ns/iter (± 0
)103
ns/iter (± 0
)0.94
es/visitor/base-perf/boxing_unboxed
75
ns/iter (± 0
)76
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_contains_this
3391
ns/iter (± 95
)3413
ns/iter (± 68
)0.99
es/base/parallel/resolver/typescript
6441659986
ns/iter (± 544366389
)5708546868
ns/iter (± 602061388
)1.13
es/base/parallel/hygiene/typescript
2157133866
ns/iter (± 15560375
)2153727458
ns/iter (± 19183181
)1.00
misc/visitors/time-complexity/time 5
93
ns/iter (± 0
)103
ns/iter (± 1
)0.90
misc/visitors/time-complexity/time 10
319
ns/iter (± 3
)309
ns/iter (± 3
)1.03
misc/visitors/time-complexity/time 15
615
ns/iter (± 16
)647
ns/iter (± 14
)0.95
misc/visitors/time-complexity/time 20
1155
ns/iter (± 15
)1166
ns/iter (± 10
)0.99
misc/visitors/time-complexity/time 40
5968
ns/iter (± 39
)6432
ns/iter (± 61
)0.93
misc/visitors/time-complexity/time 60
14965
ns/iter (± 96
)16432
ns/iter (± 93
)0.91
es/full-target/es2016
251576
ns/iter (± 1585
)250116
ns/iter (± 2668
)1.01
es/full-target/es2017
242312
ns/iter (± 1710
)240477
ns/iter (± 2223
)1.01
es/full-target/es2018
227743
ns/iter (± 2662
)230488
ns/iter (± 2853
)0.99
es2020_nullish_coalescing
91841
ns/iter (± 695
)91970
ns/iter (± 401
)1.00
es2020_optional_chaining
123606
ns/iter (± 2231
)123043
ns/iter (± 486
)1.00
es2022_class_properties
142870
ns/iter (± 979
)148542
ns/iter (± 950
)0.96
es2018_object_rest_spread
92286
ns/iter (± 590
)94057
ns/iter (± 632
)0.98
es2019_optional_catch_binding
81620
ns/iter (± 418
)83381
ns/iter (± 1235
)0.98
es2017_async_to_generator
82612
ns/iter (± 1017
)82692
ns/iter (± 533
)1.00
es2016_exponentiation
87090
ns/iter (± 747
)86996
ns/iter (± 466
)1.00
es2015_arrow
90654
ns/iter (± 598
)92017
ns/iter (± 657
)0.99
es2015_block_scoped_fn
88571
ns/iter (± 751
)88689
ns/iter (± 675
)1.00
es2015_block_scoping
163384
ns/iter (± 1019
)170604
ns/iter (± 465
)0.96
This comment was automatically generated by workflow using github-action-benchmark.