diff --git a/crates/oxc_minifier/src/compressor.rs b/crates/oxc_minifier/src/compressor.rs index 90d2d733e3aa5..8e905f6304726 100644 --- a/crates/oxc_minifier/src/compressor.rs +++ b/crates/oxc_minifier/src/compressor.rs @@ -7,11 +7,11 @@ use oxc_traverse::ReusableTraverseCtx; use crate::{ CompressOptions, - ctx::MinifierState, peephole::{ DeadCodeElimination, LatePeepholeOptimizations, Normalize, NormalizeOptions, PeepholeOptimizations, }, + state::MinifierState, }; pub struct Compressor<'a> { diff --git a/crates/oxc_minifier/src/ctx.rs b/crates/oxc_minifier/src/ctx.rs index 3be18b054d370..9aec50488bf69 100644 --- a/crates/oxc_minifier/src/ctx.rs +++ b/crates/oxc_minifier/src/ctx.rs @@ -1,9 +1,4 @@ -use std::{ - ops::{Deref, DerefMut}, - rc::Rc, -}; - -use rustc_hash::FxHashMap; +use std::ops::{Deref, DerefMut}; use oxc_ast::{AstBuilder, ast::*}; use oxc_ecmascript::{ @@ -12,27 +7,11 @@ use oxc_ecmascript::{ }, side_effects::{MayHaveSideEffects, PropertyReadSideEffects}, }; -use oxc_semantic::{IsGlobalReference, Scoping, SymbolId}; +use oxc_semantic::{IsGlobalReference, Scoping}; use oxc_span::format_atom; use oxc_syntax::reference::ReferenceId; -use crate::CompressOptions; - -pub struct MinifierState<'a> { - pub options: Rc, - - /// Constant values evaluated from expressions. - /// - /// Values are saved during constant evaluation phase. - /// Values are read during [oxc_ecmascript::is_global_reference::IsGlobalReference::get_constant_value_for_reference_id]. - pub constant_values: FxHashMap>, -} - -impl MinifierState<'_> { - pub fn new(options: Rc) -> Self { - Self { options, constant_values: FxHashMap::default() } - } -} +use crate::state::MinifierState; pub type TraverseCtx<'a> = oxc_traverse::TraverseCtx<'a, MinifierState<'a>>; diff --git a/crates/oxc_minifier/src/lib.rs b/crates/oxc_minifier/src/lib.rs index aed27fc3997e3..6e8eb60b4d0cb 100644 --- a/crates/oxc_minifier/src/lib.rs +++ b/crates/oxc_minifier/src/lib.rs @@ -7,6 +7,7 @@ mod ctx; mod keep_var; mod options; mod peephole; +mod state; #[cfg(test)] mod tester; diff --git a/crates/oxc_minifier/src/peephole/mod.rs b/crates/oxc_minifier/src/peephole/mod.rs index 7092ac78cba80..92d9c6618b4ab 100644 --- a/crates/oxc_minifier/src/peephole/mod.rs +++ b/crates/oxc_minifier/src/peephole/mod.rs @@ -27,8 +27,9 @@ use oxc_syntax::{es_target::ESTarget, scope::ScopeId}; use oxc_traverse::{ReusableTraverseCtx, Traverse, traverse_mut_with_ctx}; use crate::{ - ctx::{Ctx, MinifierState, TraverseCtx}, + ctx::{Ctx, TraverseCtx}, options::CompressOptionsKeepNames, + state::MinifierState, }; pub use self::normalize::{Normalize, NormalizeOptions}; diff --git a/crates/oxc_minifier/src/peephole/normalize.rs b/crates/oxc_minifier/src/peephole/normalize.rs index 4028ed758326e..7e87a3e7a88ed 100644 --- a/crates/oxc_minifier/src/peephole/normalize.rs +++ b/crates/oxc_minifier/src/peephole/normalize.rs @@ -6,7 +6,10 @@ use oxc_span::GetSpan; use oxc_syntax::scope::ScopeFlags; use oxc_traverse::{Ancestor, ReusableTraverseCtx, Traverse, traverse_mut_with_ctx}; -use crate::ctx::{Ctx, MinifierState, TraverseCtx}; +use crate::{ + ctx::{Ctx, TraverseCtx}, + state::MinifierState, +}; #[derive(Default)] pub struct NormalizeOptions { diff --git a/crates/oxc_minifier/src/state.rs b/crates/oxc_minifier/src/state.rs new file mode 100644 index 0000000000000..a3e1b3c3391d6 --- /dev/null +++ b/crates/oxc_minifier/src/state.rs @@ -0,0 +1,24 @@ +use std::rc::Rc; + +use rustc_hash::FxHashMap; + +use oxc_ecmascript::constant_evaluation::ConstantValue; +use oxc_semantic::SymbolId; + +use crate::CompressOptions; + +pub struct MinifierState<'a> { + pub options: Rc, + + /// Constant values evaluated from expressions. + /// + /// Values are saved during constant evaluation phase. + /// Values are read during [oxc_ecmascript::is_global_reference::IsGlobalReference::get_constant_value_for_reference_id]. + pub constant_values: FxHashMap>, +} + +impl MinifierState<'_> { + pub fn new(options: Rc) -> Self { + Self { options, constant_values: FxHashMap::default() } + } +}