From 4e241fcda82a868e88c06b7e6e0837cde8b2da90 Mon Sep 17 00:00:00 2001 From: Dunqing <29533304+Dunqing@users.noreply.github.com> Date: Fri, 21 Jun 2024 10:20:10 +0000 Subject: [PATCH] fix(isolated-declarations): missing `const` after transformed const enum (#3805) --- crates/oxc_isolated_declarations/src/enum.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/oxc_isolated_declarations/src/enum.rs b/crates/oxc_isolated_declarations/src/enum.rs index a348ce667..bf2174c85 100644 --- a/crates/oxc_isolated_declarations/src/enum.rs +++ b/crates/oxc_isolated_declarations/src/enum.rs @@ -21,7 +21,7 @@ impl<'a> IsolatedDeclarations<'a> { decl: &TSEnumDeclaration<'a>, ) -> Option> { let mut members = self.ast.new_vec(); - let mut prev_initializer_value = Some(ConstantValue::Number(0.0)); + let mut prev_initializer_value = Some(ConstantValue::Number(-1.0)); let mut prev_members = FxHashMap::default(); for member in &decl.members { let value = if let Some(initializer) = &member.initializer { @@ -90,12 +90,12 @@ impl<'a> IsolatedDeclarations<'a> { members.push(member); } - Some(self.ast.ts_enum_declaration( - decl.span, - self.ast.copy(&decl.id), - members, - self.modifiers_declare(), - )) + let mut modifiers = self.modifiers_declare(); + if decl.modifiers.contains(ModifierKind::Const) { + modifiers.add_modifier(Modifier { span: SPAN, kind: ModifierKind::Const }); + } + + Some(self.ast.ts_enum_declaration(decl.span, self.ast.copy(&decl.id), members, modifiers)) } /// Evaluate the expression to a constant value.