Ticket #4692: 4692.patch
File 4692.patch, 1.8 KB (added by , 14 years ago) |
---|
-
test/test.js
288 288 [ "var a=(b)?c:d;", 289 289 "var a=b?c:d;" ], 290 290 291 [ "var a=(b=c)?d:e;" ] 291 [ "var a=(b=c)?d:e;" ], 292 293 [ "a((1,2),3);" ], 294 [ "(1,2)+3;" ], 295 [ "3+(1,2);" ] 292 296 ]; 293 297 294 298 var tests = -
_source/includes/scriptcompressor.js
1056 1056 1057 1057 break; 1058 1058 1059 // Avoid ambiguity with commas among arguments in function call. (#4692) 1060 // E.g. call((a,b),c) 1061 case Token.COMMA : 1062 out( '(' ); 1063 writeNode( node.getFirstChild() ); 1064 out( lang[ type ] ); 1065 writeNode( node.getLastChild() ); 1066 out( ')' ); 1067 break; 1068 1059 1069 case Token.MUL : 1060 1070 case Token.DIV : 1061 1071 case Token.MOD : … … 1077 1087 case Token.BITOR : 1078 1088 case Token.AND : 1079 1089 case Token.OR : 1080 case Token.COMMA :1081 1090 case Token.IN : 1082 1091 var left = node.getFirstChild(), 1083 1092 right = node.getLastChild(), … … 1090 1099 if ( !parenthesis && associativityRTL[ type ] ) 1091 1100 parenthesis = ( precedence[ type ] == ( precedence[ left.getType() ] || 0 ) ); 1092 1101 1102 parenthesis = parenthesis && left.getType() != Token.COMMA; 1103 1093 1104 if ( parenthesis ) 1094 1105 out( '(' ); 1095 1106 … … 1109 1120 if ( !parenthesis && !associativityRTL[ type ] && !noAssociativity[ type ] ) 1110 1121 parenthesis = ( precedence[ type ] == ( precedence[ right.getType() ] || 0 ) ); 1111 1122 1123 parenthesis = parenthesis && right.getType() != Token.COMMA; 1124 1112 1125 if ( parenthesis ) 1113 1126 out( '(' ); 1114 1127