diff -r 5d6b648a39db -r f57fa856ffc4 rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Feb 17 14:26:55 2014 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Feb 17 15:39:34 2014 +0100 @@ -322,11 +322,19 @@ out.append(" var ").append(" lcA0 = this;\n"); } - int lastStackFrame = -1; + int lastStackFrame; TrapData[] previousTrap = null; boolean wide = false; + boolean didBranches; + if (stackMapIterator.isEmpty()) { + didBranches = false; + lastStackFrame = 0; + } else { + didBranches = true; + lastStackFrame = -1; + out.append("\n var gt = 0;\n"); + } - out.append("\n var gt = 0;\n"); int openBraces = 0; int topMostLabel = 0; for (int i = 0; i < byteCodes.length; i++) { @@ -1313,7 +1321,9 @@ if (previousTrap != null) { generateCatch(previousTrap, byteCodes.length, topMostLabel); } - out.append("\n }\n"); + if (didBranches) { + out.append("\n }\n"); + } while (openBraces-- > 0) { out.append('}'); }