Fix ICE in GenerateJavaAST

An empty for statement can generate an ICE.

for (Integer xyzzy : new ArrayList<Integer>())
; // TODO

http://gwt-code-reviews.appspot.com/1400801/

Review by: zundel@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9932 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
index b0f4fbb..91ce358 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
@@ -1639,7 +1639,9 @@
         body = (JBlock) action;
       } else {
         body = new JBlock(info);
-        body.addStmt(action);
+        if (action != null) {
+          body.addStmt(action);
+        }
       }
 
       JLocal elementVar = (JLocal) typeMap.get(x.elementVariable.binding);
diff --git a/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java b/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java
index a2d82f4..176353a 100644
--- a/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java
+++ b/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java
@@ -20,6 +20,7 @@
 
 import junit.framework.Assert;
 
+import java.util.ArrayList;
 import java.util.EventListener;
 
 /**
@@ -723,6 +724,12 @@
 
     for (; b;);
 
+    for (int i = 0; i < 10; ++i);
+
+    for (int i : new int[10]);
+
+    for (Integer i : new ArrayList<Integer>());
+
     for (;;)
       break;