# HG changeset patch # User Jaroslav Tulach # Date 1403452003 -7200 # Node ID 783acbc991996f629eb23d037aac6461193730be # Parent a34e2191b6bef239e557d44becfe905589a4b530 Verifying behavior of isAssignableFrom with array class parameter diff -r a34e2191b6be -r 783acbc99199 rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ClassTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ClassTest.java Sun Jun 22 17:46:43 2014 +0200 @@ -0,0 +1,47 @@ +/** + * Back 2 Browser Bytecode Translator + * Copyright (C) 2012 Jaroslav Tulach + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. Look for COPYING file in the top folder. + * If not, see http://opensource.org/licenses/GPL-2.0. + */ +package org.apidesign.bck2brwsr.tck; + +import org.apidesign.bck2brwsr.vmtest.Compare; +import org.apidesign.bck2brwsr.vmtest.VMTest; +import org.testng.annotations.Factory; + +/** + * + * @author Jaroslav Tulach + */ +public class ClassTest { + @Compare + public boolean isDoubleArrayAssignableToObject() throws Exception { + double[] dbl = new double[0]; + Class dblCls = dbl.getClass(); + return Object.class.isAssignableFrom(dblCls); + } + + @Compare + public boolean isDoubleArrayAssignableToString() throws Exception { + double[] dbl = new double[0]; + Class dblCls = dbl.getClass(); + return String.class.isAssignableFrom(dblCls); + } + + @Factory + public static Object[] create() { + return VMTest.create(ClassTest.class); + } +} diff -r a34e2191b6be -r 783acbc99199 rt/emul/mini/src/main/java/java/lang/Class.java --- a/rt/emul/mini/src/main/java/java/lang/Class.java Sun Jun 22 17:19:16 2014 +0200 +++ b/rt/emul/mini/src/main/java/java/lang/Class.java Sun Jun 22 17:46:43 2014 +0200 @@ -406,6 +406,9 @@ if (this == cls) { return true; } + if (this == Object.class) { + return true; + } if (isArray()) { final Class cmpType = cls.getComponentType(); @@ -420,6 +423,9 @@ if (cls.isPrimitive()) { return false; } + if (cls.isArray()) { + return false; + } String prop = "$instOf_" + getName().replace('.', '_'); return hasCnstrProperty(cls, prop); }