@@ -240,7 +240,7 @@ impl Pure<'_> {
240
240
let mut quasis = vec ! [ ] ;
241
241
let mut exprs = vec ! [ ] ;
242
242
let mut cur_raw = String :: new ( ) ;
243
- let mut cur_cooked = String :: new ( ) ;
243
+ let mut cur_cooked = Some ( String :: new ( ) ) ;
244
244
245
245
for i in 0 ..( tpl. exprs . len ( ) + tpl. quasis . len ( ) ) {
246
246
if i % 2 == 0 {
@@ -249,7 +249,13 @@ impl Pure<'_> {
249
249
250
250
cur_raw. push_str ( & q. raw ) ;
251
251
if let Some ( cooked) = q. cooked {
252
- cur_cooked. push_str ( & cooked) ;
252
+ if let Some ( cur_cooked) = & mut cur_cooked {
253
+ cur_cooked. push_str ( & cooked) ;
254
+ }
255
+ } else {
256
+ // If cooked is None, it means that the template literal contains invalid escape
257
+ // sequences.
258
+ cur_cooked = None ;
253
259
}
254
260
} else {
255
261
let i = i / 2 ;
@@ -258,15 +264,18 @@ impl Pure<'_> {
258
264
match * e {
259
265
Expr :: Lit ( Lit :: Str ( s) ) => {
260
266
cur_raw. push_str ( & convert_str_value_to_tpl_raw ( & s. value ) ) ;
261
- cur_cooked. push_str ( & convert_str_value_to_tpl_cooked ( & s. value ) ) ;
267
+ if let Some ( cur_cooked) = & mut cur_cooked {
268
+ cur_cooked. push_str ( & convert_str_value_to_tpl_cooked ( & s. value ) ) ;
269
+ }
262
270
}
263
271
_ => {
264
272
quasis. push ( TplElement {
265
273
span : DUMMY_SP ,
266
274
tail : true ,
267
- cooked : Some ( Atom :: from ( & * cur_cooked ) ) ,
275
+ cooked : cur_cooked . take ( ) . map ( From :: from) ,
268
276
raw : take ( & mut cur_raw) . into ( ) ,
269
277
} ) ;
278
+ cur_cooked = Some ( String :: new ( ) ) ;
270
279
271
280
exprs. push ( e) ;
272
281
}
@@ -279,7 +288,7 @@ impl Pure<'_> {
279
288
quasis. push ( TplElement {
280
289
span : DUMMY_SP ,
281
290
tail : true ,
282
- cooked : None ,
291
+ cooked : cur_cooked . map ( From :: from ) ,
283
292
raw : cur_raw. into ( ) ,
284
293
} ) ;
285
294
1 commit comments
github-actions[bot] commentedon Aug 17, 2023
Benchmark
es/full/bugs-1
292142
ns/iter (± 7667
)286839
ns/iter (± 4443
)1.02
es/full/minify/libraries/antd
1462453404
ns/iter (± 19299243
)1329731362
ns/iter (± 11252319
)1.10
es/full/minify/libraries/d3
304000041
ns/iter (± 4682457
)282376631
ns/iter (± 3658050
)1.08
es/full/minify/libraries/echarts
1129253951
ns/iter (± 12824764
)1062696736
ns/iter (± 11457907
)1.06
es/full/minify/libraries/jquery
86949177
ns/iter (± 307072
)85084248
ns/iter (± 180263
)1.02
es/full/minify/libraries/lodash
100624351
ns/iter (± 2185149
)98819869
ns/iter (± 277500
)1.02
es/full/minify/libraries/moment
51093703
ns/iter (± 185040
)49961158
ns/iter (± 90444
)1.02
es/full/minify/libraries/react
18235835
ns/iter (± 156538
)18057998
ns/iter (± 18926
)1.01
es/full/minify/libraries/terser
227755386
ns/iter (± 1539678
)219592298
ns/iter (± 856112
)1.04
es/full/minify/libraries/three
406187871
ns/iter (± 3669768
)384714725
ns/iter (± 2058930
)1.06
es/full/minify/libraries/typescript
2805000332
ns/iter (± 21684575
)2672267565
ns/iter (± 10841699
)1.05
es/full/minify/libraries/victory
606003738
ns/iter (± 7153622
)580117099
ns/iter (± 5730054
)1.04
es/full/minify/libraries/vue
123632212
ns/iter (± 712488
)120860051
ns/iter (± 668720
)1.02
es/full/codegen/es3
34039
ns/iter (± 167
)34549
ns/iter (± 47
)0.99
es/full/codegen/es5
34007
ns/iter (± 117
)34531
ns/iter (± 138
)0.98
es/full/codegen/es2015
34155
ns/iter (± 219
)34480
ns/iter (± 128
)0.99
es/full/codegen/es2016
34292
ns/iter (± 119
)34450
ns/iter (± 95
)1.00
es/full/codegen/es2017
33967
ns/iter (± 164
)34542
ns/iter (± 63
)0.98
es/full/codegen/es2018
34227
ns/iter (± 100
)34374
ns/iter (± 124
)1.00
es/full/codegen/es2019
34222
ns/iter (± 143
)34529
ns/iter (± 126
)0.99
es/full/codegen/es2020
34249
ns/iter (± 147
)34499
ns/iter (± 107
)0.99
es/full/all/es3
171312128
ns/iter (± 3973609
)166774930
ns/iter (± 1760351
)1.03
es/full/all/es5
160688415
ns/iter (± 619877
)159402412
ns/iter (± 1291786
)1.01
es/full/all/es2015
120424516
ns/iter (± 794392
)119282165
ns/iter (± 1283627
)1.01
es/full/all/es2016
119180808
ns/iter (± 553457
)119158669
ns/iter (± 714347
)1.00
es/full/all/es2017
118910295
ns/iter (± 711627
)118066499
ns/iter (± 818082
)1.01
es/full/all/es2018
116481838
ns/iter (± 933449
)115652690
ns/iter (± 624789
)1.01
es/full/all/es2019
116757737
ns/iter (± 1119356
)115247115
ns/iter (± 691107
)1.01
es/full/all/es2020
111063565
ns/iter (± 714218
)110169684
ns/iter (± 599516
)1.01
es/full/parser
493582
ns/iter (± 6297
)485816
ns/iter (± 4889
)1.02
es/full/base/fixer
18937
ns/iter (± 201
)18627
ns/iter (± 106
)1.02
es/full/base/resolver_and_hygiene
81815
ns/iter (± 126
)79920
ns/iter (± 226
)1.02
serialization of serde
296
ns/iter (± 3
)290
ns/iter (± 0
)1.02
css/minify/libraries/bootstrap
29008115
ns/iter (± 155494
)29465014
ns/iter (± 113581
)0.98
css/visitor/compare/clone
1672464
ns/iter (± 7529
)1839233
ns/iter (± 8121
)0.91
css/visitor/compare/visit_mut_span
1802521
ns/iter (± 2135
)1964988
ns/iter (± 6280
)0.92
css/visitor/compare/visit_mut_span_panic
1861330
ns/iter (± 7829
)2055110
ns/iter (± 5246
)0.91
css/visitor/compare/fold_span
2628009
ns/iter (± 19765
)2907054
ns/iter (± 9569
)0.90
css/visitor/compare/fold_span_panic
2791650
ns/iter (± 13041
)3105780
ns/iter (± 22730
)0.90
css/lexer/bootstrap_5_1_3
4495221
ns/iter (± 9066
)4470285
ns/iter (± 4908
)1.01
css/lexer/foundation_6_7_4
3786589
ns/iter (± 2312
)3769100
ns/iter (± 6213
)1.00
css/lexer/tailwind_3_1_1
721948
ns/iter (± 979
)716660
ns/iter (± 567
)1.01
css/parser/bootstrap_5_1_3
19955592
ns/iter (± 98990
)19256261
ns/iter (± 64404
)1.04
css/parser/foundation_6_7_4
15885479
ns/iter (± 55878
)15466825
ns/iter (± 21061
)1.03
css/parser/tailwind_3_1_1
3030695
ns/iter (± 10663
)2968021
ns/iter (± 3294
)1.02
es/codegen/colors
727216
ns/iter (± 398883
)726474
ns/iter (± 396165
)1.00
es/codegen/large
2934175
ns/iter (± 1606982
)2912785
ns/iter (± 1532892
)1.01
es/codegen/with-parser/colors
45337
ns/iter (± 590
)46281
ns/iter (± 135
)0.98
es/codegen/with-parser/large
488432
ns/iter (± 1630
)488569
ns/iter (± 445
)1.00
es/minify/libraries/antd
1228383395
ns/iter (± 13665869
)1164267533
ns/iter (± 15444887
)1.06
es/minify/libraries/d3
250457823
ns/iter (± 3373177
)243230501
ns/iter (± 992170
)1.03
es/minify/libraries/echarts
986487631
ns/iter (± 7207525
)922787511
ns/iter (± 9527834
)1.07
es/minify/libraries/jquery
75968237
ns/iter (± 274300
)74459515
ns/iter (± 160540
)1.02
es/minify/libraries/lodash
90041367
ns/iter (± 563031
)89136558
ns/iter (± 235944
)1.01
es/minify/libraries/moment
44223422
ns/iter (± 110637
)43934091
ns/iter (± 67386
)1.01
es/minify/libraries/react
16296193
ns/iter (± 93970
)16174887
ns/iter (± 70895
)1.01
es/minify/libraries/terser
196026944
ns/iter (± 3225543
)189480013
ns/iter (± 741215
)1.03
es/minify/libraries/three
347123575
ns/iter (± 4388935
)326133320
ns/iter (± 1705496
)1.06
es/minify/libraries/typescript
2405346405
ns/iter (± 25176615
)2293086208
ns/iter (± 8900333
)1.05
es/minify/libraries/victory
513150230
ns/iter (± 5910433
)483053318
ns/iter (± 3048788
)1.06
es/minify/libraries/vue
110616428
ns/iter (± 1267681
)108175881
ns/iter (± 216779
)1.02
es/visitor/compare/clone
1973338
ns/iter (± 6217
)1962534
ns/iter (± 4432
)1.01
es/visitor/compare/visit_mut_span
2276469
ns/iter (± 6614
)2281414
ns/iter (± 7014
)1.00
es/visitor/compare/visit_mut_span_panic
2351154
ns/iter (± 8963
)2351514
ns/iter (± 6802
)1.00
es/visitor/compare/fold_span
3417580
ns/iter (± 12274
)3386672
ns/iter (± 9327
)1.01
es/visitor/compare/fold_span_panic
3522186
ns/iter (± 12874
)3483162
ns/iter (± 11942
)1.01
es/lexer/colors
13316
ns/iter (± 64
)13056
ns/iter (± 18
)1.02
es/lexer/angular
6148946
ns/iter (± 17131
)6041072
ns/iter (± 4358
)1.02
es/lexer/backbone
800959
ns/iter (± 1527
)782821
ns/iter (± 469
)1.02
es/lexer/jquery
4599417
ns/iter (± 14947
)4469864
ns/iter (± 7727
)1.03
es/lexer/jquery mobile
6959104
ns/iter (± 13280
)6815354
ns/iter (± 5512
)1.02
es/lexer/mootools
3581803
ns/iter (± 4431
)3534402
ns/iter (± 2472
)1.01
es/lexer/underscore
660978
ns/iter (± 1169
)658210
ns/iter (± 759
)1.00
es/lexer/three
21957882
ns/iter (± 210785
)21312625
ns/iter (± 22326
)1.03
es/lexer/yui
3907708
ns/iter (± 8897
)3824650
ns/iter (± 2114
)1.02
es/parser/colors
27856
ns/iter (± 93
)27670
ns/iter (± 58
)1.01
es/parser/angular
13871869
ns/iter (± 184546
)13981500
ns/iter (± 71208
)0.99
es/parser/backbone
2035523
ns/iter (± 10721
)2066198
ns/iter (± 11211
)0.99
es/parser/jquery
11125316
ns/iter (± 78810
)11269079
ns/iter (± 55270
)0.99
es/parser/jquery mobile
17422037
ns/iter (± 214062
)17256700
ns/iter (± 47016
)1.01
es/parser/mootools
8577213
ns/iter (± 30854
)8676905
ns/iter (± 11455
)0.99
es/parser/underscore
1762710
ns/iter (± 15497
)1789026
ns/iter (± 11370
)0.99
es/parser/three
50037023
ns/iter (± 541906
)48786770
ns/iter (± 238128
)1.03
es/parser/yui
8458306
ns/iter (± 23823
)8515542
ns/iter (± 31113
)0.99
es/preset-env/usage/builtin_type
135374
ns/iter (± 32082
)136429
ns/iter (± 31794
)0.99
es/preset-env/usage/property
17542
ns/iter (± 108
)16965
ns/iter (± 43
)1.03
es/resolver/typescript
91968619
ns/iter (± 1216088
)88637849
ns/iter (± 1052699
)1.04
es/fixer/typescript
67863356
ns/iter (± 865732
)64211503
ns/iter (± 775683
)1.06
es/hygiene/typescript
137184113
ns/iter (± 992377
)130744740
ns/iter (± 573341
)1.05
es/resolver_with_hygiene/typescript
248420272
ns/iter (± 2441996
)241504094
ns/iter (± 631122
)1.03
es/visitor/base-perf/module_clone
60477
ns/iter (± 498
)60902
ns/iter (± 327
)0.99
es/visitor/base-perf/fold_empty
64516
ns/iter (± 265
)64876
ns/iter (± 270
)0.99
es/visitor/base-perf/fold_noop_impl_all
65523
ns/iter (± 175
)64917
ns/iter (± 267
)1.01
es/visitor/base-perf/fold_noop_impl_vec
65771
ns/iter (± 225
)64849
ns/iter (± 357
)1.01
es/visitor/base-perf/boxing_boxed_clone
57
ns/iter (± 0
)56
ns/iter (± 0
)1.02
es/visitor/base-perf/boxing_unboxed_clone
39
ns/iter (± 0
)40
ns/iter (± 0
)0.97
es/visitor/base-perf/boxing_boxed
106
ns/iter (± 0
)108
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed
75
ns/iter (± 0
)78
ns/iter (± 0
)0.96
es/visitor/base-perf/visit_empty
0
ns/iter (± 0
)0
ns/iter (± 0
)NaN
es/visitor/base-perf/visit_contains_this
2668
ns/iter (± 12
)2640
ns/iter (± 21
)1.01
es/base/parallel/resolver/typescript
4318549756
ns/iter (± 220345222
)4181871785
ns/iter (± 190995579
)1.03
es/base/parallel/hygiene/typescript
1482099031
ns/iter (± 16217872
)1428135712
ns/iter (± 21925360
)1.04
misc/visitors/time-complexity/time 5
138
ns/iter (± 3
)132
ns/iter (± 0
)1.05
misc/visitors/time-complexity/time 10
367
ns/iter (± 1
)303
ns/iter (± 22
)1.21
misc/visitors/time-complexity/time 15
671
ns/iter (± 1
)680
ns/iter (± 10
)0.99
misc/visitors/time-complexity/time 20
1163
ns/iter (± 2
)1055
ns/iter (± 3
)1.10
misc/visitors/time-complexity/time 40
3514
ns/iter (± 12
)4109
ns/iter (± 263
)0.86
misc/visitors/time-complexity/time 60
8786
ns/iter (± 9
)8636
ns/iter (± 760
)1.02
es/full-target/es2016
236324
ns/iter (± 1151
)234069
ns/iter (± 1014
)1.01
es/full-target/es2017
224396
ns/iter (± 708
)218805
ns/iter (± 1158
)1.03
es/full-target/es2018
211597
ns/iter (± 1262
)209997
ns/iter (± 1611
)1.01
es2020_nullish_coalescing
72522
ns/iter (± 302
)70907
ns/iter (± 497
)1.02
es2020_optional_chaining
82596
ns/iter (± 347
)79760
ns/iter (± 275
)1.04
es2022_class_properties
115471
ns/iter (± 430
)116701
ns/iter (± 521
)0.99
es2018_object_rest_spread
76435
ns/iter (± 315
)75446
ns/iter (± 211
)1.01
es2019_optional_catch_binding
65922
ns/iter (± 194
)64400
ns/iter (± 305
)1.02
es2017_async_to_generator
66772
ns/iter (± 400
)64903
ns/iter (± 242
)1.03
es2016_exponentiation
71387
ns/iter (± 420
)68702
ns/iter (± 134
)1.04
es2015_arrow
73194
ns/iter (± 217
)72240
ns/iter (± 154
)1.01
es2015_block_scoped_fn
70151
ns/iter (± 297
)69802
ns/iter (± 376
)1.00
es2015_block_scoping
124171
ns/iter (± 578
)124875
ns/iter (± 506
)0.99
This comment was automatically generated by workflow using github-action-benchmark.