@@ -439,6 +439,7 @@ public boolean visit(JTryStatement x, Context ctx) {
439
439
JsParameter jsParam = jsCatch .getParameter ();
440
440
names .put (arg .getTarget (), jsParam .getName ());
441
441
catchMap .put (catchBlock , jsCatch );
442
+ catchParamIdentifiers .add (jsParam .getName ());
442
443
443
444
push (jsCatch .getScope ());
444
445
accept (catchBlock );
@@ -1146,7 +1147,9 @@ public void endVisit(JMethodBody x, Context ctx) {
1146
1147
for (int i = 0 ; i < locals .size (); ++i ) {
1147
1148
JsName name = names .get (x .getLocals ().get (i ));
1148
1149
String ident = name .getIdent ();
1149
- if (!alreadySeen .contains (ident )) {
1150
+ if (!alreadySeen .contains (ident )
1151
+ // Catch block params don't need var declarations
1152
+ && !catchParamIdentifiers .contains (name )) {
1150
1153
alreadySeen .add (ident );
1151
1154
vars .add (new JsVar (x .getSourceInfo (), name ));
1152
1155
}
@@ -2337,6 +2340,8 @@ public static JavaToJavaScriptMap exec(JProgram program, JsProgram jsProgram,
2337
2340
2338
2341
private final Map <JBlock , JsCatch > catchMap = new IdentityHashMap <JBlock , JsCatch >();
2339
2342
2343
+ private final Set <JsName > catchParamIdentifiers = new HashSet <JsName >();
2344
+
2340
2345
private final Map <JClassType , JsScope > classScopes = new IdentityHashMap <JClassType , JsScope >();
2341
2346
2342
2347
/**
0 commit comments