1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Feb 17 14:26:55 2014 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Feb 17 15:39:34 2014 +0100
1.3 @@ -322,11 +322,19 @@
1.4 out.append(" var ").append(" lcA0 = this;\n");
1.5 }
1.6
1.7 - int lastStackFrame = -1;
1.8 + int lastStackFrame;
1.9 TrapData[] previousTrap = null;
1.10 boolean wide = false;
1.11 + boolean didBranches;
1.12 + if (stackMapIterator.isEmpty()) {
1.13 + didBranches = false;
1.14 + lastStackFrame = 0;
1.15 + } else {
1.16 + didBranches = true;
1.17 + lastStackFrame = -1;
1.18 + out.append("\n var gt = 0;\n");
1.19 + }
1.20
1.21 - out.append("\n var gt = 0;\n");
1.22 int openBraces = 0;
1.23 int topMostLabel = 0;
1.24 for (int i = 0; i < byteCodes.length; i++) {
1.25 @@ -1313,7 +1321,9 @@
1.26 if (previousTrap != null) {
1.27 generateCatch(previousTrap, byteCodes.length, topMostLabel);
1.28 }
1.29 - out.append("\n }\n");
1.30 + if (didBranches) {
1.31 + out.append("\n }\n");
1.32 + }
1.33 while (openBraces-- > 0) {
1.34 out.append('}');
1.35 }