JavaScriptBody callbacks now use simplified parameter types - all objects are just java.lang.Object NbHtml4J
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 09 Jan 2014 21:19:44 +0100
branchNbHtml4J
changeset 142738f80da886d7
parent 1426 d5d280615f60
child 1428 dbd3ed861f5f
JavaScriptBody callbacks now use simplified parameter types - all objects are just java.lang.Object
rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Thu Jan 09 17:22:41 2014 +0100
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Thu Jan 09 21:19:44 2014 +0100
     1.3 @@ -1773,6 +1773,23 @@
     1.4          final String fqnu = fqn.replace('.', '_');
     1.5          final String rfqn = mangleClassName(fqnu);
     1.6          final String rm = mangleMethodName(method);
     1.7 +        final String srp;
     1.8 +        {
     1.9 +            StringBuilder pb = new StringBuilder();
    1.10 +            int len = params.length();
    1.11 +            int indx = 0;
    1.12 +            while (indx < len) {
    1.13 +                char ch = params.charAt(indx);
    1.14 +                if (ch == '[' || ch == 'L') {
    1.15 +                    pb.append("Ljava/lang/Object;");
    1.16 +                    indx = params.indexOf(';', indx) + 1;
    1.17 +                } else {
    1.18 +                    pb.append(ch);
    1.19 +                    indx++;
    1.20 +                }
    1.21 +            }
    1.22 +            srp = mangleSig(pb.toString());
    1.23 +        }
    1.24          final String rp = mangleSig(params);
    1.25          final String mrp = mangleMethodName(rp);
    1.26          sb.append(rfqn).append("$").append(rm).
    1.27 @@ -1780,7 +1797,7 @@
    1.28          if (!isStatic) {
    1.29              sb.append('L').append(fqnu).append("_2");
    1.30          }
    1.31 -        sb.append(rp);
    1.32 +        sb.append(srp);
    1.33          return sb.toString();
    1.34      }
    1.35