diff --git a/crates/swc_html_minifier/src/lib.rs b/crates/swc_html_minifier/src/lib.rs
index bf6f343c271b..ff4c362f7ca9 100644
--- a/crates/swc_html_minifier/src/lib.rs
+++ b/crates/swc_html_minifier/src/lib.rs
@@ -1988,8 +1988,8 @@ impl Minifier<'_> {
let mut left_errors: Vec<_> = vec![];
let left_fm = cm.new_source_file(FileName::Anon, left);
let syntax = swc_ecma_parser::Syntax::default();
- // TODO improve me using options
- let target = swc_ecma_ast::EsVersion::default();
+ // Use the latest target for merging
+ let target = swc_ecma_ast::EsVersion::latest();
let mut left_program = if is_modules {
match swc_ecma_parser::parse_file_as_module(
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/config.json b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/config.json
new file mode 100644
index 000000000000..5cd57afede4d
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/config.json
@@ -0,0 +1,12 @@
+{
+ "minifyJs": {
+ "parser": {
+ "comments": true,
+ "syntax": "ecmascript",
+ "target": "es2022"
+ },
+ "codegen": {
+ "asciiOnly": false
+ }
+ }
+}
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/input.html b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/input.html
new file mode 100644
index 000000000000..4c24f91c65c3
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/input.html
@@ -0,0 +1,14 @@
+
+
+
+ Document
+
+
+
+test
+
+
+number
+
+
+
\ No newline at end of file
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/output.min.html b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/output.min.html
new file mode 100644
index 000000000000..dd3d6a177a57
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-1/output.min.html
@@ -0,0 +1,5 @@
+Document
+test
+
+number
+
\ No newline at end of file
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/config.json b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/config.json
new file mode 100644
index 000000000000..3d7a4e3f8291
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/config.json
@@ -0,0 +1,3 @@
+{
+ "minifyJs": false
+}
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/input.html b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/input.html
new file mode 100644
index 000000000000..830a27227d8b
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/input.html
@@ -0,0 +1,16 @@
+
+
+
+ Document
+
+
+
+test
+
+
+number
+
+emoji
+
+
+
\ No newline at end of file
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/output.min.html b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/output.min.html
new file mode 100644
index 000000000000..0ffbf97420b0
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen-2/output.min.html
@@ -0,0 +1,11 @@
+Document
+test
+
+number
+
+emoji
+
\ No newline at end of file
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/config.json b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/config.json
new file mode 100644
index 000000000000..050c9c222325
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/config.json
@@ -0,0 +1,7 @@
+{
+ "minifyJs": {
+ "codegen": {
+ "asciiOnly": true
+ }
+ }
+}
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/input.html b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/input.html
new file mode 100644
index 000000000000..4c24f91c65c3
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/input.html
@@ -0,0 +1,14 @@
+
+
+
+ Document
+
+
+
+test
+
+
+number
+
+
+
\ No newline at end of file
diff --git a/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/output.min.html b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/output.min.html
new file mode 100644
index 000000000000..90b83b3b26b1
--- /dev/null
+++ b/crates/swc_html_minifier/tests/fixture/element/script-group-respect-codegen/output.min.html
@@ -0,0 +1,5 @@
+Document
+test
+
+number
+
\ No newline at end of file