@@ -6,8 +6,6 @@ use anyhow::Error;
6
6
#[ doc( hidden) ]
7
7
pub use js_sys;
8
8
use once_cell:: sync:: Lazy ;
9
- use serde:: Serialize ;
10
- use serde_wasm_bindgen:: Serializer ;
11
9
use swc:: { config:: ErrorFormat , Compiler } ;
12
10
#[ doc( hidden) ]
13
11
pub use swc:: {
@@ -26,12 +24,6 @@ pub use wasm_bindgen::{JsCast, JsValue};
26
24
#[ doc( hidden) ]
27
25
pub use wasm_bindgen_futures:: future_to_promise;
28
26
29
- // A serializer with options to provide backward compat for the input / output
30
- // from the bindgen generated swc interfaces.
31
- const COMPAT_SERIALIZER : Serializer = Serializer :: new ( )
32
- . serialize_maps_as_objects ( true )
33
- . serialize_missing_as_null ( true ) ;
34
-
35
27
/// Get global sourcemap
36
28
pub fn compiler ( ) -> Arc < Compiler > {
37
29
console_error_panic_hook:: set_once ( ) ;
@@ -74,16 +66,13 @@ macro_rules! build_minify_sync {
74
66
let opts = if opts. is_null( ) || opts. is_undefined( ) {
75
67
Default :: default ( )
76
68
} else {
77
- $crate:: wasm:: serde_wasm_bindgen:: from_value( opts)
78
- . map_err( |e| $crate:: wasm:: anyhow:: anyhow!( "failed to parse options: {}" , e) ) ?
69
+ $crate:: wasm:: anyhow:: Context :: context( opts. into_serde( ) , "failed to parse options" ) ?
79
70
} ;
80
71
81
72
let fm = c. cm. new_source_file( $crate:: wasm:: FileName :: Anon , s. into( ) ) ;
82
73
let program = $crate:: wasm:: anyhow:: Context :: context( c. minify( fm, handler, & opts) , "failed to minify file" ) ?;
83
74
84
- program
85
- . serialize( & COMPAT_SERIALIZER )
86
- . map_err( |e| $crate:: wasm:: anyhow:: anyhow!( "failed to serialize program: {}" , e) )
75
+ $crate:: wasm:: anyhow:: Context :: context( $crate:: wasm:: JsValue :: from_serde( & program) , "failed to serialize json" )
87
76
} )
88
77
} ,
89
78
)
@@ -126,8 +115,7 @@ macro_rules! build_parse_sync {
126
115
let opts: $crate:: wasm:: ParseOptions = if opts. is_null( ) || opts. is_undefined( ) {
127
116
Default :: default ( )
128
117
} else {
129
- $crate:: wasm:: serde_wasm_bindgen:: from_value( opts)
130
- . map_err( |e| $crate:: wasm:: anyhow:: anyhow!( "failed to parse options: {}" , e) ) ?
118
+ $crate:: wasm:: anyhow:: Context :: context( opts. into_serde( ) , "failed to parse options" ) ?
131
119
} ;
132
120
133
121
let fm = c. cm. new_source_file( $crate:: wasm:: FileName :: Anon , s. into( ) ) ;
@@ -152,9 +140,7 @@ macro_rules! build_parse_sync {
152
140
"failed to parse code"
153
141
) ?;
154
142
155
- program
156
- . serialize( & COMPAT_SERIALIZER )
157
- . map_err( |e| $crate:: wasm:: anyhow:: anyhow!( "failed to serialize program: {}" , e) )
143
+ $crate:: wasm:: anyhow:: Context :: context( $crate:: wasm:: JsValue :: from_serde( & program) , "failed to serialize json" )
158
144
} )
159
145
} ,
160
146
)
@@ -197,12 +183,10 @@ macro_rules! build_print_sync {
197
183
let opts: $crate:: wasm:: Options = if opts. is_null( ) || opts. is_undefined( ) {
198
184
Default :: default ( )
199
185
} else {
200
- $crate:: wasm:: serde_wasm_bindgen:: from_value( opts)
201
- . map_err( |e| $crate:: wasm:: anyhow:: anyhow!( "failed to parse options: {}" , e) ) ?
186
+ $crate:: wasm:: anyhow:: Context :: context( opts. into_serde( ) , "failed to parse options" ) ?
202
187
} ;
203
188
204
- let program: $crate:: wasm:: Program = $crate:: wasm:: serde_wasm_bindgen:: from_value( s)
205
- . map_err( |e| $crate:: wasm:: anyhow:: anyhow!( "failed to deserialize program: {}" , e) ) ?;
189
+ let program: $crate:: wasm:: Program = $crate:: wasm:: anyhow:: Context :: context( s. into_serde( ) , "failed to deserialize program" ) ?;
206
190
let s = $crate:: wasm:: anyhow:: Context :: context( c
207
191
. print(
208
192
& program,
@@ -221,9 +205,7 @@ macro_rules! build_print_sync {
221
205
false ,
222
206
) , "failed to print code" ) ?;
223
207
224
- program
225
- . serialize( & COMPAT_SERIALIZER )
226
- . map_err( |e| $crate:: wasm:: anyhow:: anyhow!( "failed to serialize program: {}" , e) )
208
+ $crate:: wasm:: anyhow:: Context :: context( JsValue :: from_serde( & s) , "failed to serialize json" )
227
209
} )
228
210
} ,
229
211
)
@@ -299,7 +281,9 @@ macro_rules! build_transform_sync {
299
281
buffer
300
282
} ;
301
283
302
- let bytes: Vec <u8 > = $crate:: wasm:: serde_wasm_bindgen:: from_value( data) . expect( "Could not read byte from plugin resolver" ) ;
284
+ let bytes: Vec <u8 > = data
285
+ . into_serde( )
286
+ . expect( "Could not read byte from plugin resolver" ) ;
303
287
304
288
// In here we 'inject' externally loaded bytes into the cache, so
305
289
// remaining plugin_runner execution path works as much as
@@ -312,7 +296,8 @@ macro_rules! build_transform_sync {
312
296
let opts: $crate:: wasm:: Options = if opts. is_null( ) || opts. is_undefined( ) {
313
297
Default :: default ( )
314
298
} else {
315
- $crate:: wasm:: serde_wasm_bindgen:: from_value( opts) ?
299
+ $crate:: wasm:: anyhow:: Context :: context( opts. into_serde( ) , "failed to parse options" )
300
+ . map_err( |e| $crate:: wasm:: convert_err( e, None ) ) ?
316
301
} ;
317
302
318
303
let error_format = opts. experimental. error_format. unwrap_or_default( ) ;
@@ -348,12 +333,11 @@ macro_rules! build_transform_sync {
348
333
) , "failed to process js file"
349
334
) ?
350
335
}
351
- Err ( v) => unsafe { c. process_js( handler, $crate :: wasm :: serde_wasm_bindgen :: from_value ( v ) . expect( "" ) , & opts) ? } ,
336
+ Err ( v) => unsafe { c. process_js( handler, v . into_serde ( ) . expect( "" ) , & opts) ? } ,
352
337
} ;
353
338
354
- out
355
- . serialize( & COMPAT_SERIALIZER )
356
- . map_err( |e| $crate:: wasm:: anyhow:: anyhow!( "failed to serialize transform result: {}" , e) )
339
+ $crate:: wasm:: anyhow:: Context :: context( $crate:: wasm:: JsValue :: from_serde( & out) ,
340
+ "failed to serialize json" )
357
341
} )
358
342
} ,
359
343
)
1 commit comments
github-actions[bot] commentedon Nov 15, 2022
Benchmark
es/full/bugs-1
343550
ns/iter (± 20307
)353937
ns/iter (± 15478
)0.97
es/full/minify/libraries/antd
1918613605
ns/iter (± 27788602
)1868891374
ns/iter (± 34639916
)1.03
es/full/minify/libraries/d3
411847176
ns/iter (± 9000097
)421790779
ns/iter (± 8879696
)0.98
es/full/minify/libraries/echarts
1602234114
ns/iter (± 45659768
)1607486654
ns/iter (± 22612941
)1.00
es/full/minify/libraries/jquery
99042557
ns/iter (± 5193040
)112252600
ns/iter (± 5703459
)0.88
es/full/minify/libraries/lodash
117907487
ns/iter (± 5810567
)121615034
ns/iter (± 3380778
)0.97
es/full/minify/libraries/moment
59190908
ns/iter (± 2466949
)61102830
ns/iter (± 2091024
)0.97
es/full/minify/libraries/react
20728014
ns/iter (± 1778732
)20960742
ns/iter (± 607548
)0.99
es/full/minify/libraries/terser
297951302
ns/iter (± 7917389
)323519854
ns/iter (± 42117752
)0.92
es/full/minify/libraries/three
587759274
ns/iter (± 13857055
)569456979
ns/iter (± 42207651
)1.03
es/full/minify/libraries/typescript
3519955127
ns/iter (± 104605921
)3461879651
ns/iter (± 132493402
)1.02
es/full/minify/libraries/victory
852374252
ns/iter (± 24390741
)885543151
ns/iter (± 20195024
)0.96
es/full/minify/libraries/vue
160770327
ns/iter (± 7981538
)188916760
ns/iter (± 9096546
)0.85
es/full/codegen/es3
34925
ns/iter (± 1627
)34554
ns/iter (± 1230
)1.01
es/full/codegen/es5
34319
ns/iter (± 1683
)34282
ns/iter (± 1448
)1.00
es/full/codegen/es2015
35211
ns/iter (± 2154
)34593
ns/iter (± 1267
)1.02
es/full/codegen/es2016
34683
ns/iter (± 2157
)34499
ns/iter (± 1368
)1.01
es/full/codegen/es2017
34512
ns/iter (± 815
)34845
ns/iter (± 1992
)0.99
es/full/codegen/es2018
34392
ns/iter (± 905
)34526
ns/iter (± 2356
)1.00
es/full/codegen/es2019
34312
ns/iter (± 818
)34348
ns/iter (± 1842
)1.00
es/full/codegen/es2020
34279
ns/iter (± 1151
)34195
ns/iter (± 1428
)1.00
es/full/all/es3
194127133
ns/iter (± 11726037
)229084131
ns/iter (± 14912080
)0.85
es/full/all/es5
182127686
ns/iter (± 16083062
)180403040
ns/iter (± 11310020
)1.01
es/full/all/es2015
147043997
ns/iter (± 11211648
)148853027
ns/iter (± 7310353
)0.99
es/full/all/es2016
146351168
ns/iter (± 8371993
)149398134
ns/iter (± 16523408
)0.98
es/full/all/es2017
145674489
ns/iter (± 8588438
)163861520
ns/iter (± 14451991
)0.89
es/full/all/es2018
143979878
ns/iter (± 6720903
)156390161
ns/iter (± 15223961
)0.92
es/full/all/es2019
142589262
ns/iter (± 9629843
)149809909
ns/iter (± 12657867
)0.95
es/full/all/es2020
137907789
ns/iter (± 7413935
)139469119
ns/iter (± 10011078
)0.99
es/full/parser
715916
ns/iter (± 20625
)728932
ns/iter (± 28397
)0.98
es/full/base/fixer
26126
ns/iter (± 994
)26728
ns/iter (± 1184
)0.98
es/full/base/resolver_and_hygiene
91329
ns/iter (± 2580
)92334
ns/iter (± 4845
)0.99
serialization of ast node
216
ns/iter (± 4
)226
ns/iter (± 9
)0.96
serialization of serde
222
ns/iter (± 2
)233
ns/iter (± 4
)0.95
This comment was automatically generated by workflow using github-action-benchmark.