# HG changeset patch # User Jaroslav Tulach # Date 1364224590 -3600 # Node ID 88540bb74300853025b9f7633b753a6cae4a566a # Parent 4508b8b6b45b11ba2393a7d74763535a59a71452 Class.isAssignableFrom and primitive types works better now diff -r 4508b8b6b45b -r 88540bb74300 rt/emul/mini/src/main/java/java/lang/Class.java --- a/rt/emul/mini/src/main/java/java/lang/Class.java Mon Mar 25 14:15:09 2013 +0100 +++ b/rt/emul/mini/src/main/java/java/lang/Class.java Mon Mar 25 16:16:30 2013 +0100 @@ -402,8 +402,15 @@ } return cmpType != null && getComponentType().isAssignableFrom(cmpType); } - String prop = "$instOf_" + getName().replace('.', '_'); - return hasCnstrProperty(cls, prop); + if (isPrimitive()) { + return false; + } else { + if (cls.isPrimitive()) { + return false; + } + String prop = "$instOf_" + getName().replace('.', '_'); + return hasCnstrProperty(cls, prop); + } } @JavaScriptBody(args = { "who", "prop" }, body = diff -r 4508b8b6b45b -r 88540bb74300 rt/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java --- a/rt/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Mon Mar 25 14:15:09 2013 +0100 +++ b/rt/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Mon Mar 25 16:16:30 2013 +0100 @@ -53,6 +53,22 @@ return Runnable.class.isInterface(); } + @Compare public boolean isAssignableToPrimitiveType() { + return boolean.class.isAssignableFrom(Runnable.class); + } + + @Compare public boolean isAssignableFromPrimitiveType() { + return Runnable.class.isAssignableFrom(boolean.class); + } + + @Compare public boolean isAssignableLongFromInt() { + return long.class.isAssignableFrom(int.class); + } + + @Compare public boolean isAssignableIntFromLong() { + return int.class.isAssignableFrom(long.class); + } + @Compare public String isRunnableHasRunMethod() throws NoSuchMethodException { return Runnable.class.getMethod("run").getName(); }