Need to initialize flags. getFields throws SecurityException on bck2brwsr VM - avoid.
1.1 --- a/rt/emul/compact/src/main/java/java/lang/invoke/MemberName.java Tue Aug 12 21:07:20 2014 +0200
1.2 +++ b/rt/emul/compact/src/main/java/java/lang/invoke/MemberName.java Tue Aug 12 22:57:16 2014 +0200
1.3 @@ -73,7 +73,7 @@
1.4 Class<?> clazz; // class in which the method is defined
1.5 private String name; // may be null if not yet materialized
1.6 private Object type; // may be null if not yet materialized
1.7 - private int flags; // modifier bits; see reflect.Modifier
1.8 + int flags; // modifier bits; see reflect.Modifier
1.9 //@Injected JVM_Method* vmtarget;
1.10 //@Injected int vmindex;
1.11 private Object resolution; // if null, this guy is resolved
2.1 --- a/rt/emul/compact/src/main/java/java/lang/invoke/MethodHandleNatives.java Tue Aug 12 21:07:20 2014 +0200
2.2 +++ b/rt/emul/compact/src/main/java/java/lang/invoke/MethodHandleNatives.java Tue Aug 12 22:57:16 2014 +0200
2.3 @@ -47,7 +47,16 @@
2.4 /// MemberName support
2.5
2.6 static void init(MemberName self, Object ref) {
2.7 - self.clazz = ((Member)ref).getDeclaringClass();
2.8 + final Member mem = (Member)ref;
2.9 + self.clazz = mem.getDeclaringClass();
2.10 + int mod = mem.getModifiers();
2.11 + if (ref instanceof Method) {
2.12 + mod |= MemberName.IS_METHOD;
2.13 + }
2.14 + if (ref instanceof Constructor) {
2.15 + mod |= MemberName.IS_CONSTRUCTOR;
2.16 + }
2.17 + self.flags = mod;
2.18 }
2.19
2.20 static void expand(MemberName self) {
2.21 @@ -73,13 +82,13 @@
2.22 MemberName mn = new MemberName(m);
2.23 results[skip++] = mn;
2.24 }
2.25 - for (Field m : defc.getFields()) {
2.26 - if (skip == results.length) {
2.27 - break;
2.28 - }
2.29 - MemberName mn = new MemberName(m);
2.30 - results[skip++] = mn;
2.31 - }
2.32 +// for (Field m : defc.getFields()) {
2.33 +// if (skip == results.length) {
2.34 +// break;
2.35 +// }
2.36 +// MemberName mn = new MemberName(m);
2.37 +// results[skip++] = mn;
2.38 +// }
2.39 return skip - orig;
2.40 }
2.41
3.1 --- a/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/MethodImpl.java Tue Aug 12 21:07:20 2014 +0200
3.2 +++ b/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/MethodImpl.java Tue Aug 12 22:57:16 2014 +0200
3.3 @@ -53,7 +53,7 @@
3.4 + "var arr = new Array();\n"
3.5 + "function check(m, verify) {\n"
3.6 + " if (m.indexOf(prefix) === 0) {\n"
3.7 - + " if (!c[m].cls) return;\n"
3.8 + + " if (!c[m] || !c[m].cls) return;\n"
3.9 + " if (verify) {\n"
3.10 + " for (var i = 0; i < arr.length; i += 3) {\n"
3.11 + " if (arr[i] === m) return;\n"