From 241e2893997bad57e8723ea4578f6de150faa2d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EB=8F=99=EC=9C=A4=20=28Donny=29?= Date: Tue, 7 May 2024 13:23:33 +0900 Subject: [PATCH 1/3] Add a test --- .../fixture/issues-8xxx/8920/input/.swcrc | 64 +++++++++++++++++++ .../tests/fixture/issues-8xxx/8920/input/1.js | 8 +++ 2 files changed, 72 insertions(+) create mode 100644 crates/swc/tests/fixture/issues-8xxx/8920/input/.swcrc create mode 100644 crates/swc/tests/fixture/issues-8xxx/8920/input/1.js diff --git a/crates/swc/tests/fixture/issues-8xxx/8920/input/.swcrc b/crates/swc/tests/fixture/issues-8xxx/8920/input/.swcrc new file mode 100644 index 000000000000..2c29c9864667 --- /dev/null +++ b/crates/swc/tests/fixture/issues-8xxx/8920/input/.swcrc @@ -0,0 +1,64 @@ +{ + "jsc": { + "parser": { + "syntax": "ecmascript", + "jsx": false + }, + "target": "es2022", + "loose": false, + "minify": { + "compress": { + "arguments": false, + "arrows": true, + "booleans": true, + "booleans_as_integers": false, + "collapse_vars": true, + "comparisons": true, + "computed_props": true, + "conditionals": true, + "dead_code": true, + "directives": true, + "drop_console": false, + "drop_debugger": true, + "evaluate": true, + "expression": false, + "hoist_funs": false, + "hoist_props": true, + "hoist_vars": false, + "if_return": true, + "join_vars": true, + "keep_classnames": false, + "keep_fargs": true, + "keep_fnames": false, + "keep_infinity": false, + "loops": true, + "negate_iife": true, + "properties": true, + "reduce_funcs": false, + "reduce_vars": false, + "side_effects": true, + "switches": true, + "typeofs": true, + "unsafe": false, + "unsafe_arrows": false, + "unsafe_comps": false, + "unsafe_Function": false, + "unsafe_math": false, + "unsafe_symbols": false, + "unsafe_methods": false, + "unsafe_proto": false, + "unsafe_regexp": false, + "unsafe_undefined": false, + "unused": true, + "const_to_let": true, + "pristine_globals": true + }, + "mangle": false + } + }, + "module": { + "type": "commonjs" + }, + "minify": false, + "isModule": false +} \ No newline at end of file diff --git a/crates/swc/tests/fixture/issues-8xxx/8920/input/1.js b/crates/swc/tests/fixture/issues-8xxx/8920/input/1.js new file mode 100644 index 000000000000..559d08bc2dd1 --- /dev/null +++ b/crates/swc/tests/fixture/issues-8xxx/8920/input/1.js @@ -0,0 +1,8 @@ +"use strict"; +const k = (() => { + function f() { + class x { } + x(); + } + return f; +})(); \ No newline at end of file From f9e9a63baaa53f3091e5e4aacaf57e5fb49c6334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EB=8F=99=EC=9C=A4=20=28Donny=29?= Date: Tue, 7 May 2024 13:27:20 +0900 Subject: [PATCH 2/3] fix --- crates/swc_ecma_transforms_base/src/fixer.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/swc_ecma_transforms_base/src/fixer.rs b/crates/swc_ecma_transforms_base/src/fixer.rs index 91175d5cbc1c..a01891f854a3 100644 --- a/crates/swc_ecma_transforms_base/src/fixer.rs +++ b/crates/swc_ecma_transforms_base/src/fixer.rs @@ -87,6 +87,7 @@ impl Fixer<'_> { match e { Expr::Lit(Lit::Num(..) | Lit::Str(..)) => (), Expr::Cond(..) + | Expr::Class(..) | Expr::Bin(..) | Expr::Lit(..) | Expr::Unary(..) From d5da560cd4b908c785a08f4689fc054e682008d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EB=8F=99=EC=9C=A4=20=28Donny=29?= Date: Tue, 7 May 2024 13:34:50 +0900 Subject: [PATCH 3/3] Update test refs --- crates/swc/tests/fixture/issues-8xxx/8920/output/1.js | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 crates/swc/tests/fixture/issues-8xxx/8920/output/1.js diff --git a/crates/swc/tests/fixture/issues-8xxx/8920/output/1.js b/crates/swc/tests/fixture/issues-8xxx/8920/output/1.js new file mode 100644 index 000000000000..4830933f7461 --- /dev/null +++ b/crates/swc/tests/fixture/issues-8xxx/8920/output/1.js @@ -0,0 +1,5 @@ +"use strict"; +let k = function() { + (class { + })(); +};