# HG changeset patch # User Jaroslav Tulach # Date 1389298784 -3600 # Node ID 38f80da886d7775d3b793c2af379ebaca2332004 # Parent d5d280615f6048cbf19a7194335ee5e0e7774233 JavaScriptBody callbacks now use simplified parameter types - all objects are just java.lang.Object diff -r d5d280615f60 -r 38f80da886d7 rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Thu Jan 09 17:22:41 2014 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Thu Jan 09 21:19:44 2014 +0100 @@ -1773,6 +1773,23 @@ final String fqnu = fqn.replace('.', '_'); final String rfqn = mangleClassName(fqnu); final String rm = mangleMethodName(method); + final String srp; + { + StringBuilder pb = new StringBuilder(); + int len = params.length(); + int indx = 0; + while (indx < len) { + char ch = params.charAt(indx); + if (ch == '[' || ch == 'L') { + pb.append("Ljava/lang/Object;"); + indx = params.indexOf(';', indx) + 1; + } else { + pb.append(ch); + indx++; + } + } + srp = mangleSig(pb.toString()); + } final String rp = mangleSig(params); final String mrp = mangleMethodName(rp); sb.append(rfqn).append("$").append(rm). @@ -1780,7 +1797,7 @@ if (!isStatic) { sb.append('L').append(fqnu).append("_2"); } - sb.append(rp); + sb.append(srp); return sb.toString(); }