Working on enum support.

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1455 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JEnumType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JEnumType.java
index cc9c125..efce503 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/ast/JEnumType.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JEnumType.java
@@ -29,6 +29,7 @@
 
   public JEnumType(JProgram program, SourceInfo info, String name) {
     super(program, info, name, false, false);
+    this.extnds = program.getTypeJavaLangEnum();
   }
 
   // TODO: implement traverse?
diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java
index e08cec5..3b7677f 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java
@@ -185,6 +185,8 @@
   private final JPrimitiveType typeInt = new JPrimitiveType(this, "int", "I",
       "java.lang.Integer", literalIntZero);
 
+  private JClassType typeJavaLangEnum;
+
   private JClassType typeJavaLangObject;
 
   private final JPrimitiveType typeLong = new JPrimitiveType(this, "long", "J",
@@ -243,6 +245,8 @@
         typeJavaLangObject = x;
       } else if (sname.equals("java.lang.String")) {
         typeString = x;
+      } else if (sname.equals("java.lang.Enum")) {
+        typeJavaLangEnum = x;
       } else if (sname.equals("java.lang.Class")) {
         typeClass = x;
       } else if (sname.equals("com.google.gwt.core.client.JavaScriptObject")) {
@@ -574,6 +578,10 @@
     return typeClass;
   }
 
+  public JClassType getTypeJavaLangEnum() {
+    return typeJavaLangEnum;
+  }
+
   public JClassType getTypeJavaLangObject() {
     return typeJavaLangObject;
   }
diff --git a/user/test/com/google/gwt/dev/jjs/test/HostedTest.java b/user/test/com/google/gwt/dev/jjs/test/HostedTest.java
index 809a91d..c40f4e2 100644
--- a/user/test/com/google/gwt/dev/jjs/test/HostedTest.java
+++ b/user/test/com/google/gwt/dev/jjs/test/HostedTest.java
@@ -250,6 +250,11 @@
     assertEquals(s.length(), getStringLength(s));
     assertEquals(s + "me", getString(s));
   }
+  
+  @Override
+  public boolean catchExceptions() {
+    return false;
+  }
 
   public void testEnum() {
     TestEnum val = enumSimple(TestEnum.VAL2);
@@ -447,7 +452,7 @@
   }-*/;
 
   private native String enumName(TestEnum val) /*-{
-    return val.@com.google.gwt.dev.jjs.test.HostedTest.TestEnum::name()();
+    return val.@java.lang.Enum::name()();
   }-*/;
 
   private native TestEnum enumSimple(TestEnum val) /*-{
@@ -455,7 +460,7 @@
   }-*/;
 
   private native int enumValue(TestEnum val) /*-{
-    return val.@com.google.gwt.dev.jjs.test.HostedTest.TestEnum::ordinal()();
+    return val.@java.lang.Enum::ordinal()();
   }-*/;
 
   private native String fooCall(String s) /*-{