1.1 --- a/emul/src/main/java/java/lang/Class.java Sat Dec 15 06:16:43 2012 +0100
1.2 +++ b/emul/src/main/java/java/lang/Class.java Sat Dec 15 07:10:58 2012 +0100
1.3 @@ -144,8 +144,18 @@
1.4 */
1.5 public static Class<?> forName(String className)
1.6 throws ClassNotFoundException {
1.7 - throw new UnsupportedOperationException();
1.8 + Class<?> c = loadCls(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 + )
1.19 + private static native Class<?> loadCls(String c);
1.20
1.21
1.22 /**
2.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/tck/CompareStringsTest.java Sat Dec 15 06:16:43 2012 +0100
2.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/tck/CompareStringsTest.java Sat Dec 15 07:10:58 2012 +0100
2.3 @@ -36,6 +36,10 @@
2.4 return sb.toString().toString();
2.5 }
2.6
2.7 + @Compare public String nameOfStringClass() throws Exception {
2.8 + return Class.forName("java.lang.String").getName();
2.9 + }
2.10 +
2.11 @Factory
2.12 public static Object[] create() {
2.13 return CompareVMs.create(CompareStringsTest.class);