diff --git a/crates/oxc_transformer/src/common/module_imports.rs b/crates/oxc_transformer/src/common/module_imports.rs index a4bddb9515ff7..a6e45357788bf 100644 --- a/crates/oxc_transformer/src/common/module_imports.rs +++ b/crates/oxc_transformer/src/common/module_imports.rs @@ -165,6 +165,9 @@ impl<'a> ModuleImportsStore<'a> { fn insert_import_statements(&self, transform_ctx: &TransformCtx<'a>, ctx: &TraverseCtx<'a>) { let mut imports = self.imports.borrow_mut(); + if imports.is_empty() { + return; + } let stmts = imports.drain(..).map(|(source, names)| Self::get_import(source, names, ctx)); transform_ctx.top_level_statements.insert_statements(stmts); } diff --git a/crates/oxc_transformer/src/plugins/module_runner_transform.rs b/crates/oxc_transformer/src/plugins/module_runner_transform.rs index dab63d255ae90..899ffffaeb1bc 100644 --- a/crates/oxc_transformer/src/plugins/module_runner_transform.rs +++ b/crates/oxc_transformer/src/plugins/module_runner_transform.rs @@ -173,7 +173,9 @@ impl<'a> ModuleRunnerTransform<'a> { } } - new_stmts.splice(0..0, hoist_exports.into_iter().chain(hoist_imports)); + if !hoist_imports.is_empty() || !hoist_exports.is_empty() { + new_stmts.splice(0..0, hoist_exports.into_iter().chain(hoist_imports)); + } program.body = new_stmts; } diff --git a/crates/oxc_transformer/src/typescript/namespace.rs b/crates/oxc_transformer/src/typescript/namespace.rs index 98b9bf1515c77..458f7bcecae27 100644 --- a/crates/oxc_transformer/src/typescript/namespace.rs +++ b/crates/oxc_transformer/src/typescript/namespace.rs @@ -194,7 +194,9 @@ impl<'a> TypeScriptNamespace<'a, '_> { }); let stmts = Self::handle_variable_declaration(var_decl, &uid_binding, ctx); - new_stmts.extend(stmts); + if !stmts.is_empty() { + new_stmts.extend(stmts); + } } Declaration::TSModuleDeclaration(module_decl) => { self.handle_nested(