@@ -22,7 +22,7 @@ use swc_ecma_transforms::{
22
22
Assumptions ,
23
23
} ;
24
24
use swc_ecma_utils:: prepend_stmts;
25
- use swc_ecma_visit:: { Fold , FoldWith , VisitWith } ;
25
+ use swc_ecma_visit:: { as_folder , Fold , VisitMut , VisitMutWith , VisitWith } ;
26
26
27
27
pub use self :: transform_data:: Feature ;
28
28
@@ -311,7 +311,7 @@ where
311
311
312
312
chain ! (
313
313
pass,
314
- Polyfills {
314
+ as_folder ( Polyfills {
315
315
mode: c. mode,
316
316
regenerator: should_enable!( Regenerator , true ) ,
317
317
corejs: c. core_js. unwrap_or( Version {
@@ -323,7 +323,7 @@ where
323
323
targets,
324
324
includes: included_modules,
325
325
excludes: excluded_modules,
326
- }
326
+ } )
327
327
)
328
328
}
329
329
@@ -338,8 +338,8 @@ struct Polyfills {
338
338
excludes : AHashSet < String > ,
339
339
}
340
340
341
- impl Fold for Polyfills {
342
- fn fold_module ( & mut self , mut m : Module ) -> Module {
341
+ impl VisitMut for Polyfills {
342
+ fn visit_mut_module ( & mut self , m : & mut Module ) {
343
343
let span = m. span ;
344
344
345
345
let required = match self . mode {
@@ -365,7 +365,7 @@ impl Fold for Polyfills {
365
365
_ => unimplemented ! ( "corejs version other than 2 / 3" ) ,
366
366
} ;
367
367
368
- if regenerator:: is_required ( & m) {
368
+ if regenerator:: is_required ( m) {
369
369
r. insert ( "regenerator-runtime/runtime.js" ) ;
370
370
}
371
371
@@ -374,13 +374,13 @@ impl Fold for Polyfills {
374
374
Some ( Mode :: Entry ) => match self . corejs {
375
375
Version { major : 2 , .. } => {
376
376
let mut v = corejs2:: Entry :: new ( self . targets , self . regenerator ) ;
377
- m = m . fold_with ( & mut v) ;
377
+ m. visit_mut_with ( & mut v) ;
378
378
v. imports
379
379
}
380
380
381
381
Version { major : 3 , .. } => {
382
382
let mut v = corejs3:: Entry :: new ( self . targets , self . corejs , !self . regenerator ) ;
383
- m = m . fold_with ( & mut v) ;
383
+ m. visit_mut_with ( & mut v) ;
384
384
v. imports
385
385
}
386
386
@@ -450,11 +450,9 @@ impl Fold for Polyfills {
450
450
}
451
451
452
452
m. body . retain ( |item| !matches ! ( item, ModuleItem :: ModuleDecl ( ModuleDecl :: Import ( ImportDecl { src, .. } ) ) if src. span == DUMMY_SP && src. value == js_word!( "" ) ) ) ;
453
-
454
- m
455
453
}
456
454
457
- fn fold_script ( & mut self , _: Script ) -> Script {
455
+ fn visit_mut_script ( & mut self , _: & mut Script ) {
458
456
unimplemented ! ( "automatic polyfill for scripts" )
459
457
}
460
458
}
0 commit comments