File tree 7 files changed +178
-0
lines changed
swc/tests/fixture/issues-8xxx/8692
tests/fixture/issues/8692
7 files changed +178
-0
lines changed Original file line number Diff line number Diff line change
1
+ {
2
+ "$schema" : " http://json.schemastore.org/swcrc" ,
3
+ "jsc" : {
4
+ "externalHelpers" : false ,
5
+ "parser" : {
6
+ "syntax" : " typescript" ,
7
+ "tsx" : false ,
8
+ "dynamicImport" : true ,
9
+ "decorators" : true
10
+ },
11
+ "keepClassNames" : true ,
12
+ "target" : " es2020" ,
13
+ "minify" : {
14
+ "compress" : {
15
+ "arguments" : false ,
16
+ "arrows" : false ,
17
+ "booleans" : false ,
18
+ "booleans_as_integers" : false ,
19
+ "collapse_vars" : false ,
20
+ "comparisons" : false ,
21
+ "computed_props" : false ,
22
+ "conditionals" : false ,
23
+ "dead_code" : false ,
24
+ "directives" : false ,
25
+ "drop_console" : false ,
26
+ "drop_debugger" : false ,
27
+ "evaluate" : false ,
28
+ "expression" : false ,
29
+ "hoist_funs" : false ,
30
+ "hoist_props" : true ,
31
+ "hoist_vars" : false ,
32
+ "if_return" : false ,
33
+ "join_vars" : false ,
34
+ "keep_classnames" : false ,
35
+ "keep_fargs" : false ,
36
+ "keep_fnames" : false ,
37
+ "keep_infinity" : false ,
38
+ "loops" : false ,
39
+ "negate_iife" : false ,
40
+ "properties" : false ,
41
+ "reduce_funcs" : false ,
42
+ "reduce_vars" : false ,
43
+ "side_effects" : false ,
44
+ "switches" : false ,
45
+ "typeofs" : false ,
46
+ "unsafe" : false ,
47
+ "unsafe_arrows" : false ,
48
+ "unsafe_comps" : false ,
49
+ "unsafe_Function" : false ,
50
+ "unsafe_math" : false ,
51
+ "unsafe_symbols" : false ,
52
+ "unsafe_methods" : false ,
53
+ "unsafe_proto" : false ,
54
+ "unsafe_regexp" : false ,
55
+ "unsafe_undefined" : false ,
56
+ "unused" : false ,
57
+ "const_to_let" : false ,
58
+ "pristine_globals" : false
59
+ },
60
+ "mangle" : false
61
+ }
62
+ }
63
+ }
Original file line number Diff line number Diff line change
1
+ const props = {
2
+ neededProp : 1 ,
3
+ nestedProp : {
4
+ getProps : ( ) => props ,
5
+ getProp ( ) {
6
+ return this . getProps ( ) . neededProp ;
7
+ } ,
8
+ } ,
9
+ } ;
10
+ console . log ( props . nestedProp . getProp ( ) ) ; // should log: 1
Original file line number Diff line number Diff line change
1
+ const props = {
2
+ neededProp : 1 ,
3
+ nestedProp : {
4
+ getProps : ( ) => props ,
5
+ getProp ( ) {
6
+ return this . getProps ( ) . neededProp ;
7
+ }
8
+ }
9
+ } ;
10
+ console . log ( props . nestedProp . getProp ( ) ) ;
Original file line number Diff line number Diff line change @@ -956,6 +956,34 @@ impl Visit for ThisPropertyVisitor {
956
956
}
957
957
}
958
958
959
+ fn visit_callee ( & mut self , c : & Callee ) {
960
+ if self . should_abort {
961
+ return ;
962
+ }
963
+
964
+ c. visit_children_with ( self ) ;
965
+
966
+ if self . should_abort {
967
+ return ;
968
+ }
969
+
970
+ if let Callee :: Expr ( e) = c {
971
+ match & * * e {
972
+ Expr :: This ( ..) => {
973
+ self . should_abort = true ;
974
+ }
975
+
976
+ Expr :: Member ( e) => {
977
+ if e. obj . is_this ( ) {
978
+ self . should_abort = true ;
979
+ }
980
+ }
981
+
982
+ _ => { }
983
+ }
984
+ }
985
+ }
986
+
959
987
fn visit_member_expr ( & mut self , e : & MemberExpr ) {
960
988
if self . should_abort {
961
989
return ;
Original file line number Diff line number Diff line change
1
+ {
2
+ "arguments" : false ,
3
+ "arrows" : false ,
4
+ "booleans" : false ,
5
+ "booleans_as_integers" : false ,
6
+ "collapse_vars" : false ,
7
+ "comparisons" : false ,
8
+ "computed_props" : false ,
9
+ "conditionals" : false ,
10
+ "dead_code" : false ,
11
+ "directives" : false ,
12
+ "drop_console" : false ,
13
+ "drop_debugger" : false ,
14
+ "evaluate" : false ,
15
+ "expression" : false ,
16
+ "hoist_funs" : false ,
17
+ "hoist_props" : true ,
18
+ "hoist_vars" : false ,
19
+ "if_return" : false ,
20
+ "join_vars" : false ,
21
+ "keep_classnames" : false ,
22
+ "keep_fargs" : false ,
23
+ "keep_fnames" : false ,
24
+ "keep_infinity" : false ,
25
+ "loops" : false ,
26
+ "negate_iife" : false ,
27
+ "properties" : false ,
28
+ "reduce_funcs" : false ,
29
+ "reduce_vars" : false ,
30
+ "side_effects" : false ,
31
+ "switches" : false ,
32
+ "typeofs" : false ,
33
+ "unsafe" : false ,
34
+ "unsafe_arrows" : false ,
35
+ "unsafe_comps" : false ,
36
+ "unsafe_Function" : false ,
37
+ "unsafe_math" : false ,
38
+ "unsafe_symbols" : false ,
39
+ "unsafe_methods" : false ,
40
+ "unsafe_proto" : false ,
41
+ "unsafe_regexp" : false ,
42
+ "unsafe_undefined" : false ,
43
+ "unused" : false ,
44
+ "const_to_let" : false ,
45
+ "pristine_globals" : false ,
46
+ "defaults" : true
47
+ }
Original file line number Diff line number Diff line change
1
+ const props = {
2
+ neededProp : 1 ,
3
+ nestedProp : {
4
+ getProps : ( ) => props ,
5
+ getProp ( ) {
6
+ return this . getProps ( ) . neededProp ;
7
+ } ,
8
+ } ,
9
+ } ;
10
+ console . log ( props . nestedProp . getProp ( ) ) ; // should log: 1
Original file line number Diff line number Diff line change
1
+ const props = {
2
+ neededProp : 1 ,
3
+ nestedProp : {
4
+ getProps : ( ) => props ,
5
+ getProp ( ) {
6
+ return this . getProps ( ) . neededProp ;
7
+ }
8
+ }
9
+ } ;
10
+ console . log ( props . nestedProp . getProp ( ) ) ;
You can’t perform that action at this time.
0 commit comments