diff -r 10d26626c426 -r ca538fb33f48 rt/vm/src/test/java/org/apidesign/vm4brwsr/Array.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/Array.java Tue May 06 08:36:54 2014 +0200 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/Array.java Tue May 06 10:08:42 2014 +0200 @@ -115,9 +115,42 @@ } public static boolean instanceOfArray(Object obj) { + if ("string-array".equals(obj)) { + obj = new String[] { "Ahoj" }; + } return obj instanceof Object[]; } + public static boolean castArray(int type) { + try { + Object orig = new Object(); + Object res = orig; + if (type == 0) { + Object[] arr = new Integer[1]; + String[] str = (String[]) arr; + res = str; + } + if (type == 1) { + Object[] arr = null; + String[] str = (String[]) arr; + res = str; + } + if (type == 2) { + Object[] arr = new String[1]; + String[] str = (String[]) arr; + res = str; + } + if (type == 3) { + Object[] arr = new String[1]; + CharSequence[] str = (CharSequence[]) arr; + res = str; + } + return res != orig; + } catch (ClassCastException ex) { + return false; + } + } + public static int sum(int size) { int[] arr = new int[size]; return arr[0] + arr[1];