1.1 --- a/rt/emul/mini/src/main/java/java/lang/Class.java Mon Mar 25 14:15:09 2013 +0100
1.2 +++ b/rt/emul/mini/src/main/java/java/lang/Class.java Mon Mar 25 16:16:30 2013 +0100
1.3 @@ -402,8 +402,15 @@
1.4 }
1.5 return cmpType != null && getComponentType().isAssignableFrom(cmpType);
1.6 }
1.7 - String prop = "$instOf_" + getName().replace('.', '_');
1.8 - return hasCnstrProperty(cls, prop);
1.9 + if (isPrimitive()) {
1.10 + return false;
1.11 + } else {
1.12 + if (cls.isPrimitive()) {
1.13 + return false;
1.14 + }
1.15 + String prop = "$instOf_" + getName().replace('.', '_');
1.16 + return hasCnstrProperty(cls, prop);
1.17 + }
1.18 }
1.19
1.20 @JavaScriptBody(args = { "who", "prop" }, body =
2.1 --- a/rt/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Mon Mar 25 14:15:09 2013 +0100
2.2 +++ b/rt/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Mon Mar 25 16:16:30 2013 +0100
2.3 @@ -53,6 +53,22 @@
2.4 return Runnable.class.isInterface();
2.5 }
2.6
2.7 + @Compare public boolean isAssignableToPrimitiveType() {
2.8 + return boolean.class.isAssignableFrom(Runnable.class);
2.9 + }
2.10 +
2.11 + @Compare public boolean isAssignableFromPrimitiveType() {
2.12 + return Runnable.class.isAssignableFrom(boolean.class);
2.13 + }
2.14 +
2.15 + @Compare public boolean isAssignableLongFromInt() {
2.16 + return long.class.isAssignableFrom(int.class);
2.17 + }
2.18 +
2.19 + @Compare public boolean isAssignableIntFromLong() {
2.20 + return int.class.isAssignableFrom(long.class);
2.21 + }
2.22 +
2.23 @Compare public String isRunnableHasRunMethod() throws NoSuchMethodException {
2.24 return Runnable.class.getMethod("run").getName();
2.25 }