diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
index 2b990ba..6fb3a68 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
@@ -1206,13 +1206,24 @@
       return new JsBinaryOperation(JsBinaryOperator.COMMA, lhs, rhs);
     }
 
+    private void generateClassLiteral(JType type, JsVars vars) {
+      JsName jsName = classLits.get(type);
+      JsExpression classObjectAlloc = classObjects.get(jsName);
+      JsVar var = new JsVar(jsName);
+      var.setInitExpr(classObjectAlloc);
+      vars.add(var);
+    }
+
     private void generateClassLiterals(JsVars vars) {
+      // Object must go first; arrays depend on it.
+      JClassType objType = program.getTypeJavaLangObject();
+      if (classLits.containsKey(objType)) {
+        generateClassLiteral(objType, vars);
+      }
       for (JType type : classLits.keySet()) {
-        JsName jsName = classLits.get(type);
-        JsExpression classObjectAlloc = classObjects.get(jsName);
-        JsVar var = new JsVar(jsName);
-        var.setInitExpr(classObjectAlloc);
-        vars.add(var);
+        if (type != objType) {
+          generateClassLiteral(type, vars);
+        }
       }
     }
 
