diff --git a/crates/swc/tests/exec/issues-6xxx/6127/1/input/.swcrc b/crates/swc/tests/exec/issues-6xxx/6127/1/input/.swcrc new file mode 100644 index 000000000000..0e7c62297e4d --- /dev/null +++ b/crates/swc/tests/exec/issues-6xxx/6127/1/input/.swcrc @@ -0,0 +1,64 @@ +{ + "jsc": { + "parser": { + "syntax": "ecmascript", + "jsx": false + }, + "target": "es2019", + "loose": false, + "minify": { + "compress": { + "arguments": false, + "arrows": false, + "booleans": false, + "booleans_as_integers": false, + "collapse_vars": true, + "comparisons": false, + "computed_props": false, + "conditionals": false, + "dead_code": false, + "directives": false, + "drop_console": false, + "drop_debugger": false, + "evaluate": false, + "expression": false, + "hoist_funs": false, + "hoist_props": false, + "hoist_vars": false, + "if_return": false, + "join_vars": false, + "keep_classnames": false, + "keep_fargs": false, + "keep_fnames": false, + "keep_infinity": false, + "loops": false, + "negate_iife": false, + "properties": false, + "reduce_funcs": false, + "reduce_vars": false, + "side_effects": false, + "switches": false, + "typeofs": false, + "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": false, + "const_to_let": false, + "pristine_globals": false + }, + "mangle": false + } + }, + "module": { + "type": "es6" + }, + "minify": false, + "isModule": true +} \ No newline at end of file diff --git a/crates/swc/tests/exec/issues-6xxx/6127/1/input/exec.js b/crates/swc/tests/exec/issues-6xxx/6127/1/input/exec.js new file mode 100644 index 000000000000..130e1e6e236a --- /dev/null +++ b/crates/swc/tests/exec/issues-6xxx/6127/1/input/exec.js @@ -0,0 +1,13 @@ +const a = 0; +let b; +for (let i = 0; i < 2; ++i) { + if (i === 0) { + b = 1; + } else { + b = 2; + } + console.log(a, b); +} + +let c = 1, d; +while (c--) { } \ No newline at end of file diff --git a/crates/swc_ecma_minifier/tests/exec.rs b/crates/swc_ecma_minifier/tests/exec.rs index 091c933393f6..33003e875041 100644 --- a/crates/swc_ecma_minifier/tests/exec.rs +++ b/crates/swc_ecma_minifier/tests/exec.rs @@ -10249,3 +10249,81 @@ fn issue_6039_2() { "###, ); } + +#[test] +fn issue_6217_1() { + run_exec_test( + r###" + var foo = function foo() { + var walker = 0; + var arr = []; + function bar(defaultValue) { + var myIndex = walker; + walker += 1; + console.log({ + arr: arr + }); + if (arr.length < myIndex + 1) { + arr[myIndex] = defaultValue; + } + } + return bar; + }; + var bar = foo(); + bar(null); + bar(null); + bar(null); + bar(null); + bar(null); + "###, + r###" + { + "arguments": false, + "arrows": false, + "booleans": false, + "booleans_as_integers": false, + "collapse_vars": true, + "comparisons": false, + "computed_props": false, + "conditionals": false, + "dead_code": false, + "directives": false, + "drop_console": false, + "drop_debugger": false, + "evaluate": false, + "expression": false, + "hoist_funs": false, + "hoist_props": false, + "hoist_vars": false, + "if_return": false, + "join_vars": false, + "keep_classnames": false, + "keep_fargs": false, + "keep_fnames": false, + "keep_infinity": false, + "loops": false, + "negate_iife": false, + "properties": false, + "reduce_funcs": false, + "reduce_vars": false, + "side_effects": false, + "switches": false, + "typeofs": false, + "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": false, + "const_to_let": false, + "pristine_globals": false + } + "###, + false, + ); +} diff --git a/crates/swc_html_parser/tests/html5lib_tests.rs b/crates/swc_html_parser/tests/html5lib_tests.rs index 5adf076328be..f2ca1e3d1bd1 100644 --- a/crates/swc_html_parser/tests/html5lib_tests.rs +++ b/crates/swc_html_parser/tests/html5lib_tests.rs @@ -1,3 +1,6 @@ +#![allow(clippy::redundant_clone)] +#![allow(clippy::while_let_on_iterator)] + use std::{fs, mem::take, path::PathBuf}; use common::{document_span_visualizer, DomVisualizer}; @@ -666,11 +669,9 @@ fn html5lib_test_tree_construction(input: PathBuf) { let need_skip_fragment = relative_path_to_test.contains("template_dat") && matches!(counter, 109 | 110 | 111); - if !need_skip_fragment { - if !document_fragment.is_empty() { - file_stem += ".fragment_"; - file_stem += &document_fragment.join("").replace(' ', "_"); - } + if !need_skip_fragment && !document_fragment.is_empty() { + file_stem += ".fragment_"; + file_stem += &document_fragment.join("").replace(' ', "_"); } if scripting_enabled {