From ba67ffe2d788ad1d3f151bd7fae578716668b193 Mon Sep 17 00:00:00 2001 From: h-a-n-a Date: Fri, 3 Feb 2023 02:31:40 +0800 Subject: [PATCH] perf: stack mem-move --- crates/rspack_core/src/ast/css.rs | 4 ++-- crates/rspack_core/src/ast/javascript.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/rspack_core/src/ast/css.rs b/crates/rspack_core/src/ast/css.rs index 2d61118452df..8788c4e6b7bc 100644 --- a/crates/rspack_core/src/ast/css.rs +++ b/crates/rspack_core/src/ast/css.rs @@ -21,7 +21,7 @@ impl fmt::Debug for Context { #[derive(Debug, Clone)] pub struct Ast { - root: SwcStylesheet, + root: Box, context: Arc, } @@ -34,7 +34,7 @@ impl Hash for Ast { impl Ast { pub fn new(root: SwcStylesheet, source_map: Arc) -> Self { Self { - root, + root: box root, context: Arc::new(Context::new(source_map)), } } diff --git a/crates/rspack_core/src/ast/javascript.rs b/crates/rspack_core/src/ast/javascript.rs index 8f070be6f6dd..69b860996b6e 100644 --- a/crates/rspack_core/src/ast/javascript.rs +++ b/crates/rspack_core/src/ast/javascript.rs @@ -19,11 +19,11 @@ use swc_core::ecma::visit::{ /// Use this to avoid using `use swc_ecma_visit::*` /// and save changes in self #[derive(Debug, Clone, Hash)] -pub struct Program(SwcProgram); +pub struct Program(Box); impl Program { pub fn fold_with(&mut self, v: &mut V) { - let p = std::mem::replace(&mut self.0, SwcProgram::Module(Module::dummy())); + let p = std::mem::replace(&mut self.0, box SwcProgram::Module(Module::dummy())); self.0 = p.fold_with(v); } @@ -126,7 +126,7 @@ impl Ast { SwcProgram::Script(_) => false, }; Self { - program: Program(program), + program: Program(box program), context: Arc::new(Context::new(is_esm, source_map)), } }