Skip to content
This repository has been archived by the owner on Jan 16, 2024. It is now read-only.

Commit

Permalink
cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
yellowsink committed Feb 22, 2023
1 parent e3a025d commit eedd80f
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 59 deletions.
15 changes: 3 additions & 12 deletions crates/paramin/src/transforms/confident/mangle.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ use std::collections::HashMap;
use swc_core::ecma::{
ast,
atoms::JsWord,
transforms::testing::test,
visit::{VisitMut, VisitMutWith},
};

Expand All @@ -12,7 +11,7 @@ use crate::{
arrow_to_function, extract_fn_shadows, extract_pat_idents, function_to_arrow,
get_ast_idents,
},
export_transformer,
export_transformer, test,
};

const ALPHABET: &[u8] = b"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_";
Expand Down Expand Up @@ -140,22 +139,14 @@ impl VisitMut for MangleVisitor {
export_transformer!(MangleVisitor::default());

test!(
Default::default(),
|_| {
use swc_core::ecma::visit::as_folder;
as_folder(MangleVisitor::default())
},
MangleVisitor,
mangle_test,
r#"let foo, bar = 5; console.log(foo ?? bar + 7)"#,
r#"let a, b = 5; console.log(a ?? b + 7)"#
);

test!(
Default::default(),
|_| {
use swc_core::ecma::visit::as_folder;
as_folder(MangleVisitor::default())
},
MangleVisitor,
mangle_awareness_test,
r#"let b,c,a, d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_;
Expand Down
44 changes: 3 additions & 41 deletions crates/paramin/src/transforms/confident/mod.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@
mod mangle;
mod swc;
use mangle::transformer as transform_mangle;
use swc::transformer as transform_swc;

use swc_core::{
common::{sync::Lrc, Globals, Mark, SourceMap, GLOBALS},
ecma::{
ast::{Program, EsVersion},
minifier::{
optimize,
option::{ExtraOptions, MinifyOptions, CompressOptions, MangleOptions},
},
},
};
use swc_core::ecma::ast::Program;

pub fn transform_confident(p: &mut Program) {
// we leave SWC's minifier enabled, but ours helps to have too
Expand All @@ -22,34 +15,3 @@ pub fn transform_confident(p: &mut Program) {
transform_mangle(p);
transform_swc(p);
}

fn transform_swc(program: &mut Program) {
let globals = Globals::new();
GLOBALS.set(&globals, || {
*program = optimize(
program.clone(),
Lrc::new(SourceMap::default()),
None,
None,
&MinifyOptions {
mangle: Some(MangleOptions::default()),
enclose: false,
rename: false,
wrap: false,
compress: Some(CompressOptions {
ecma: EsVersion::EsNext,
hoist_vars: true,
hoist_props: true,
hoist_fns: true,
module: true,
negate_iife: false,
..Default::default()
})
},
&ExtraOptions {
unresolved_mark: Mark::new(),
top_level_mark: Mark::new(),
},
);
});
}
41 changes: 41 additions & 0 deletions crates/paramin/src/transforms/confident/swc.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
use swc_core::{
common::{sync::Lrc, Globals, Mark, SourceMap, GLOBALS},
ecma::{
ast::{EsVersion, Program},
minifier::{
optimize,
option::{CompressOptions, ExtraOptions, MangleOptions, MinifyOptions},
},
},
};

pub fn transformer(program: &mut Program) {
let globals = Globals::new();
GLOBALS.set(&globals, || {
*program = optimize(
program.clone(),
Lrc::new(SourceMap::default()),
None,
None,
&MinifyOptions {
mangle: Some(MangleOptions::default()),
enclose: false,
rename: false,
wrap: false,
compress: Some(CompressOptions {
ecma: EsVersion::EsNext,
hoist_vars: true,
hoist_props: true,
hoist_fns: true,
module: true,
negate_iife: false,
..Default::default()
}),
},
&ExtraOptions {
unresolved_mark: Mark::new(),
top_level_mark: Mark::new(),
},
);
});
}
8 changes: 2 additions & 6 deletions crates/paramin/src/transforms/macros.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
#[macro_export]
macro_rules! export_transformer {
($a:expr) => {
use swc_core::ecma::ast::Program as ___macro_Program;

#[inline(always)]
pub fn transformer(program: &mut ___macro_Program) {
pub fn transformer(program: &mut swc_core::ecma::ast::Program) {
program.visit_mut_with(&mut $a)
}
};
Expand All @@ -13,9 +11,7 @@ macro_rules! export_transformer {
#[macro_export]
macro_rules! test {
($a:ty, $b:ident, $c:expr, $d:expr) => {
use swc_core::ecma::transforms::testing::test as ___macro_test;

___macro_test!(
swc_core::ecma::transforms::testing::test!(
Default::default(),
|_| {
use swc_core::ecma::visit::as_folder;
Expand Down

0 comments on commit eedd80f

Please sign in to comment.