1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Jan 20 12:26:35 2015 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Jan 20 17:23:12 2015 +0100
1.3 @@ -2386,7 +2386,7 @@
1.4 String type = jc.getClassName(indx);
1.5 if (!type.startsWith("[")) {
1.6 emitNoFlush(smapper,
1.7 - "if (@1 !== null && !@1['$instOf_@2']) throw vm.java_lang_ClassCastException(true);",
1.8 + "if (@1 !== null && !@1['$instOf_@2']) vm.java_lang_Class(false).castEx();",
1.9 smapper.getT(0, VarType.REFERENCE, false), type.replace('/', '_'));
1.10 } else {
1.11 int cnt = 0;
1.12 @@ -2396,12 +2396,12 @@
1.13 if (type.charAt(cnt) == 'L') {
1.14 type = "vm." + mangleClassName(type.substring(cnt + 1, type.length() - 1));
1.15 emitNoFlush(smapper,
1.16 - "if (@1 !== null && !Array.prototype['isInstance__ZLjava_lang_Object_2ILjava_lang_Object_2'](@1, @3, @2)) throw vm.java_lang_ClassCastException(true);",
1.17 + "if (@1 !== null && !Array.prototype['isInstance__ZLjava_lang_Object_2ILjava_lang_Object_2'](@1, @3, @2)) vm.java_lang_Class(false).castEx();",
1.18 smapper.getT(0, VarType.REFERENCE, false), type, "" + cnt
1.19 );
1.20 } else {
1.21 emitNoFlush(smapper,
1.22 - "if (@1 !== null && !Array.prototype['isInstance__ZLjava_lang_Object_2Ljava_lang_String_2'](@1, '@2')) throw vm.java_lang_ClassCastException(true);",
1.23 + "if (@1 !== null && !Array.prototype['isInstance__ZLjava_lang_Object_2Ljava_lang_String_2'](@1, '@2')) vm.java_lang_Class(false).castEx();",
1.24 smapper.getT(0, VarType.REFERENCE, false), type
1.25 );
1.26 }