emul/src/main/java/java/lang/Class.java
changeset 322 3884815c0629
parent 321 1848c77df886
child 353 fd38bdad7fb5
     1.1 --- a/emul/src/main/java/java/lang/Class.java	Sat Dec 15 07:10:58 2012 +0100
     1.2 +++ b/emul/src/main/java/java/lang/Class.java	Sat Dec 15 08:17:45 2012 +0100
     1.3 @@ -144,18 +144,22 @@
     1.4       */
     1.5      public static Class<?> forName(String className)
     1.6                  throws ClassNotFoundException {
     1.7 -        Class<?> c = loadCls(className.replace('.', '_'));
     1.8 +        Class<?> c = loadCls(className, className.replace('.', '_'));
     1.9          if (c == null) {
    1.10              throw new ClassNotFoundException();
    1.11          }
    1.12          return c;
    1.13      }
    1.14      
    1.15 -    @JavaScriptBody(args = "c", body =
    1.16 -        "if (vm[c]) return vm[c].$class;"
    1.17 -      + "else return null;"
    1.18 +    @JavaScriptBody(args = {"n", "c" }, body =
    1.19 +        "if (vm[c]) return vm[c].$class;\n"
    1.20 +      + "if (vm.loadClass) {\n"
    1.21 +      + "  vm.loadClass(n);\n"
    1.22 +      + "  if (vm[c]) return vm[c].$class;\n"
    1.23 +      + "}\n"
    1.24 +      + "return null;"
    1.25      )
    1.26 -    private static native Class<?> loadCls(String c);
    1.27 +    private static native Class<?> loadCls(String n, String c);
    1.28  
    1.29  
    1.30      /**