1.1 --- a/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/AnnotationImpl.java Mon Feb 04 23:22:54 2013 +0100
1.2 +++ b/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/AnnotationImpl.java Tue Feb 05 00:00:22 2013 +0100
1.3 @@ -41,6 +41,15 @@
1.4 + "function f(val, prop, clazz) {\n"
1.5 + " return function() {\n"
1.6 + " if (clazz == null) return val[prop];\n"
1.7 + + " if (clazz.isArray__Z()) {\n"
1.8 + + " var valarr = val[prop];\n"
1.9 + + " var cmp = clazz.getComponentType__Ljava_lang_Class_2();\n"
1.10 + + " var retarr = vm.java_lang_reflect_Array(false).newInstance__Ljava_lang_Object_2Ljava_lang_Class_2I(cmp, valarr.length);\n"
1.11 + + " for (var i = 0; i < valarr.length; i++) {\n"
1.12 + + " retarr[i] = CLS.prototype.c__Ljava_lang_Object_2Ljava_lang_Class_2Ljava_lang_Object_2(cmp, valarr[i]);\n"
1.13 + + " }\n"
1.14 + + " return retarr;\n"
1.15 + + " }\n"
1.16 + " return CLS.prototype.c__Ljava_lang_Object_2Ljava_lang_Class_2Ljava_lang_Object_2(clazz, val[prop]);\n"
1.17 + " };\n"
1.18 + "}\n"
1.19 @@ -109,7 +118,12 @@
1.20 for (Method m : marr) {
1.21 arr[pos++] = MethodImpl.toSignature(m);
1.22 arr[pos++] = m.getName();
1.23 - arr[pos++] = m.getReturnType().isAnnotation() ? m.getReturnType() : null;
1.24 + final Class<?> rt = m.getReturnType();
1.25 + if (rt.isArray()) {
1.26 + arr[pos++] = rt.getComponentType().isAnnotation() ? rt : null;
1.27 + } else {
1.28 + arr[pos++] = rt.isAnnotation() ? rt : null;
1.29 + }
1.30 }
1.31 return arr;
1.32 }