1.1 --- a/boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java Wed Jan 08 12:58:45 2014 +0100
1.2 +++ b/boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java Thu Jan 09 20:39:23 2014 +0100
1.3 @@ -298,13 +298,26 @@
1.4 }
1.5
1.6 int cnt = 0;
1.7 + StringBuilder convert = new StringBuilder();
1.8 for (VariableElement ve : m.getParameters()) {
1.9 source.append(sep);
1.10 - source.append(ve.asType());
1.11 - source.append(" arg").append(++cnt);
1.12 + ++cnt;
1.13 + final TypeMirror t = ve.asType();
1.14 + if (!t.getKind().isPrimitive()) {
1.15 + source.append("Object");
1.16 + convert.append(" if (p instanceof org.apidesign.html.boot.spi.Fn.FromJavaScript) {\n");
1.17 + convert.append(" arg").append(cnt).
1.18 + append(" = ((org.apidesign.html.boot.spi.Fn.FromJavaScript)p).toJava(arg").append(cnt).
1.19 + append(");\n");
1.20 + convert.append(" }\n");
1.21 + } else {
1.22 + source.append(t);
1.23 + }
1.24 + source.append(" arg").append(cnt);
1.25 sep = ", ";
1.26 }
1.27 source.append(") throws Throwable {\n");
1.28 + source.append(convert);
1.29 if (processingEnv.getSourceVersion().compareTo(SourceVersion.RELEASE_7) >= 0) {
1.30 source.append(" try (java.io.Closeable a = org.apidesign.html.boot.spi.Fn.activate(p)) { \n");
1.31 } else {
1.32 @@ -326,7 +339,8 @@
1.33 sep = "";
1.34 for (VariableElement ve : m.getParameters()) {
1.35 source.append(sep);
1.36 - source.append("arg").append(++cnt);
1.37 + source.append("(").append(ve.asType());
1.38 + source.append(")arg").append(++cnt);
1.39 sep = ", ";
1.40 }
1.41 source.append(");\n");