diff -r 7a78a84ab583 -r d4ee65642d8d rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/MethodImpl.java --- a/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/MethodImpl.java Sat Sep 28 12:03:59 2013 +0200 +++ b/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/MethodImpl.java Thu May 22 15:29:40 2014 +0200 @@ -21,6 +21,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.util.Enumeration; +import org.apidesign.bck2brwsr.core.Exported; import org.apidesign.bck2brwsr.core.JavaScriptBody; /** Utilities to work on methods. @@ -126,7 +127,7 @@ } return null; } - + public static Method[] findMethods(Class clazz, int mask) { Object[] namesAndData = findMethodData(clazz, "", false); int cnt = 0; @@ -137,6 +138,11 @@ if (middle == -1) { continue; } + if (sig.startsWith("$") && sig.endsWith("$")) { + // produced by Closure compiler in debug mode + // needs to be ignored + continue; + } String name = sig.substring(0, middle); sig = sig.substring(middle + 2); Class cls = (Class) namesAndData[i + 2]; @@ -152,7 +158,8 @@ } return arr; } - static String toSignature(Method m) { + + @Exported static String toSignature(Method m) { StringBuilder sb = new StringBuilder(); sb.append(m.getName()).append("__"); appendType(sb, m.getReturnType()); @@ -222,9 +229,17 @@ public static Enumeration signatureParser(final String sig) { class E implements Enumeration { int pos; + int len; + + E() { + len = sig.length(); + while (sig.charAt(len - 1) == '$') { + len--; + } + } public boolean hasMoreElements() { - return pos < sig.length(); + return pos < len; } public Class nextElement() {