File tree Expand file tree Collapse file tree 2 files changed +71
-6
lines changed Expand file tree Collapse file tree 2 files changed +71
-6
lines changed Original file line number Diff line number Diff line change @@ -7301,12 +7301,11 @@ merge(Compressor.prototype, {
7301
7301
if (value === null) {
7302
7302
value = make_node(AST_Number, node, { value: 0 });
7303
7303
} else if (value) {
7304
- if (value.may_throw_on_access(compressor, true)) value = make_sequence(node, [
7305
- value,
7306
- make_node(AST_Number, node, { value: 0 }),
7307
- ]);
7308
- } else if (node instanceof AST_DestructuredArray) {
7309
- return make_node(AST_DestructuredArray, node, { elements: [] });
7304
+ if (value.tail_node().write_only === true || value.may_throw_on_access(compressor, true)) {
7305
+ value = make_node(AST_Array, node, {
7306
+ elements: value instanceof AST_Sequence ? value.expressions : [ value ],
7307
+ });
7308
+ }
7310
7309
}
7311
7310
return make_node(AST_DestructuredObject, node, { properties: [] });
7312
7311
}
Original file line number Diff line number Diff line change @@ -1003,3 +1003,69 @@ issue_5089_2: {
1003
1003
expect_stdout: "undefined"
1004
1004
node_version: ">=8"
1005
1005
}
1006
+
1007
+ issue_5100_1: {
1008
+ options = {
1009
+ passes : 2 ,
1010
+ pure_getters : "strict" ,
1011
+ side_effects : true ,
1012
+ unused : true ,
1013
+ }
1014
+ input: {
1015
+ var a ;
1016
+ [ {
1017
+ p : { } ,
1018
+ ...a
1019
+ } ] = [ {
1020
+ p : {
1021
+ q : a ,
1022
+ } = 42 ,
1023
+ r : "PASS" ,
1024
+ } ] ;
1025
+ console . log ( a . r ) ;
1026
+ }
1027
+ expect: {
1028
+ var a ;
1029
+ [ {
1030
+ p : { } ,
1031
+ ...a
1032
+ } ] = [ {
1033
+ p : [ a = 42 [ "q" ] ] ,
1034
+ r : "PASS" ,
1035
+ } ] ;
1036
+ console . log ( a . r ) ;
1037
+ }
1038
+ expect_stdout: "PASS"
1039
+ node_version: ">=8"
1040
+ }
1041
+
1042
+ issue_5100_2: {
1043
+ options = {
1044
+ passes : 2 ,
1045
+ pure_getters : "strict" ,
1046
+ side_effects : true ,
1047
+ unused : true ,
1048
+ }
1049
+ input: {
1050
+ var a ;
1051
+ [ {
1052
+ p : { } ,
1053
+ ...a
1054
+ } ] = [ {
1055
+ p : ( console . log ( "PASS" ) , {
1056
+ q : a ,
1057
+ } = 42 ) ,
1058
+ } ] ;
1059
+ }
1060
+ expect: {
1061
+ var a ;
1062
+ [ {
1063
+ p : { } ,
1064
+ ...a
1065
+ } ] = [ {
1066
+ p : [ console . log ( "PASS" ) , a = 42 [ "q" ] ] ,
1067
+ } ] ;
1068
+ }
1069
+ expect_stdout: "PASS"
1070
+ node_version: ">=10"
1071
+ }
You can’t perform that action at this time.
0 commit comments