Skip to content

Commit 730ded2

Browse files
authoredApr 4, 2024··
fix(es/minifier): Abort fn inliner if there's a spread arg (#8809)
**Description:** **Related issue:** - Closes #8806
1 parent d1eb7b8 commit 730ded2

File tree

4 files changed

+69
-0
lines changed

4 files changed

+69
-0
lines changed
 

‎crates/swc_ecma_minifier/src/compress/optimize/iife.rs

+4
Original file line numberDiff line numberDiff line change
@@ -835,6 +835,10 @@ impl Optimizer<'_> {
835835
return None;
836836
}
837837

838+
if args.iter().any(|arg| arg.spread.is_some()) {
839+
return None;
840+
}
841+
838842
if self.vars.inline_with_multi_replacer(body) {
839843
self.changed = true;
840844
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{
2+
"defaults": true,
3+
"arguments": false,
4+
"arrows": true,
5+
"booleans": true,
6+
"booleans_as_integers": false,
7+
"collapse_vars": true,
8+
"comparisons": true,
9+
"computed_props": true,
10+
"conditionals": true,
11+
"dead_code": true,
12+
"directives": true,
13+
"drop_console": false,
14+
"drop_debugger": true,
15+
"evaluate": true,
16+
"expression": false,
17+
"hoist_funs": false,
18+
"hoist_props": true,
19+
"hoist_vars": false,
20+
"if_return": true,
21+
"join_vars": true,
22+
"keep_classnames": false,
23+
"keep_fargs": true,
24+
"keep_fnames": false,
25+
"keep_infinity": false,
26+
"loops": true,
27+
"negate_iife": true,
28+
"properties": true,
29+
"reduce_funcs": false,
30+
"reduce_vars": false,
31+
"side_effects": true,
32+
"switches": true,
33+
"typeofs": true,
34+
"unsafe": false,
35+
"unsafe_arrows": false,
36+
"unsafe_comps": false,
37+
"unsafe_Function": false,
38+
"unsafe_math": false,
39+
"unsafe_symbols": false,
40+
"unsafe_methods": false,
41+
"unsafe_proto": false,
42+
"unsafe_regexp": false,
43+
"unsafe_undefined": false,
44+
"unused": true,
45+
"const_to_let": true,
46+
"pristine_globals": true,
47+
"passes": 2
48+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
function logTheNine() {
3+
((theThree, theNine) => {
4+
console.log(theNine)
5+
})(...[3, 9]);
6+
}
7+
8+
logTheNine();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function logTheNine() {
2+
((theThree, theNine)=>{
3+
console.log(theNine);
4+
})(...[
5+
3,
6+
9
7+
]);
8+
}
9+
logTheNine();

0 commit comments

Comments
 (0)
Please sign in to comment.