File tree 4 files changed +48
-11
lines changed
swc_ecma_minifier/tests/full/issue-5912-bigdecimal
4 files changed +48
-11
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ swc_core : patch
3
+ swc_ecma_minifier : patch
4
+ ---
5
+
6
+ fix(es/codegen): Improve EndsWithAlphaNum
Original file line number Diff line number Diff line change @@ -65,6 +65,18 @@ mod tests {
65
65
assert_min ( "2 >>> 2" , "2>>>2" ) ;
66
66
assert_min ( "foo in bar" , "foo in bar" ) ;
67
67
assert_min ( "foo instanceof Foo" , "foo instanceof Foo" ) ;
68
+
69
+ assert_min ( "foo() in b" , "foo()in b" ) ;
70
+ assert_min ( "typeof foo() in b" , "typeof foo()in b" ) ;
71
+ assert_min ( "`` in b" , "``in b" ) ;
72
+ assert_min ( "a?.foo() in b" , "a?.foo()in b" ) ;
73
+ assert_min ( "++a[1] in b" , "++a[1]in b" ) ;
74
+ assert_min ( "a++ in foo" , "a++in foo" ) ;
75
+ assert_min ( "``+`` in b" , "``+``in b" ) ;
76
+ assert_min ( "new Foo(a) in b" , "new Foo(a)in b" ) ;
77
+
78
+ assert_min ( "new Foo() in b" , "new Foo in b" ) ;
79
+ assert_min ( "++a in b" , "++a in b" ) ;
68
80
}
69
81
70
82
#[ test]
Original file line number Diff line number Diff line change @@ -52,17 +52,36 @@ impl EndsWithAlphaNum for UsingDecl {
52
52
53
53
impl EndsWithAlphaNum for Expr {
54
54
fn ends_with_alpha_num ( & self ) -> bool {
55
- !matches ! (
56
- self ,
55
+ match self {
57
56
Expr :: Array ( ..)
58
- | Expr :: Object ( ..)
59
- | Expr :: Lit ( Lit :: Str ( ..) )
60
- | Expr :: Paren ( ..)
61
- | Expr :: Member ( MemberExpr {
62
- prop: MemberProp :: Computed ( ..) ,
63
- ..
64
- } )
65
- )
57
+ | Expr :: Object ( ..)
58
+ | Expr :: Lit ( Lit :: Str ( ..) )
59
+ | Expr :: Paren ( ..)
60
+ | Expr :: Member ( MemberExpr {
61
+ prop : MemberProp :: Computed ( ..) ,
62
+ ..
63
+ } )
64
+ | Expr :: Tpl ( ..)
65
+ | Expr :: TaggedTpl ( ..)
66
+ | Expr :: Call ( ..) => false ,
67
+
68
+ Expr :: Unary ( n) => n. arg . ends_with_alpha_num ( ) ,
69
+
70
+ Expr :: Update ( n) => n. prefix && n. arg . ends_with_alpha_num ( ) ,
71
+
72
+ Expr :: OptChain ( n) => match n. base . as_ref ( ) {
73
+ OptChainBase :: Member ( base) => base. prop . is_computed ( ) ,
74
+ OptChainBase :: Call ( _) => false ,
75
+ } ,
76
+
77
+ Expr :: Bin ( n) => n. right . ends_with_alpha_num ( ) ,
78
+
79
+ Expr :: New ( NewExpr {
80
+ args : Some ( args) , ..
81
+ } ) => args. is_empty ( ) ,
82
+
83
+ _ => true ,
84
+ }
66
85
}
67
86
}
68
87
You can’t perform that action at this time.
0 commit comments