1.1 --- a/boot-fx/src/main/java/org/netbeans/html/boot/fx/AbstractFXPresenter.java Wed Dec 17 17:34:16 2014 +0100
1.2 +++ b/boot-fx/src/main/java/org/netbeans/html/boot/fx/AbstractFXPresenter.java Wed Dec 17 18:09:12 2014 +0100
1.3 @@ -260,6 +260,9 @@
1.4
1.5 @Override
1.6 public Object toJava(Object jsArray) {
1.7 + assert !(jsArray instanceof String);
1.8 + assert !(jsArray instanceof Boolean);
1.9 + assert !(jsArray instanceof Number);
1.10 if (jsArray instanceof Weak) {
1.11 jsArray = ((Weak)jsArray).get();
1.12 }
2.1 --- a/boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java Wed Dec 17 17:34:16 2014 +0100
2.2 +++ b/boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java Wed Dec 17 18:09:12 2014 +0100
2.3 @@ -392,6 +392,8 @@
2.4 return;
2.5 }
2.6 final TypeElement selfType = (TypeElement)m.getEnclosingElement();
2.7 + final TypeMirror stringType = processingEnv.getElementUtils().getTypeElement("java.lang.String").asType();
2.8 +
2.9
2.10 source.append("\n public java.lang.Object ")
2.11 .append(mangled)
2.12 @@ -419,7 +421,7 @@
2.13 source.append(sep);
2.14 ++cnt;
2.15 final TypeMirror t = ve.asType();
2.16 - if (!t.getKind().isPrimitive()) {
2.17 + if (!t.getKind().isPrimitive() && !processingEnv.getTypeUtils().isSameType(t, stringType)) {
2.18 source.append("Object");
2.19 convert.append(" if (p instanceof org.netbeans.html.boot.spi.Fn.FromJavaScript) {\n");
2.20 convert.append(" arg").append(cnt).
3.1 --- a/json-tck/src/main/java/net/java/html/js/tests/Bodies.java Wed Dec 17 17:34:16 2014 +0100
3.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/Bodies.java Wed Dec 17 18:09:12 2014 +0100
3.3 @@ -191,6 +191,11 @@
3.4 "return @net.java.html.js.tests.Bodies::problematicString()();"
3.5 )
3.6 public static native String problematicCallback();
3.7 +
3.8 + @JavaScriptBody(args = { "sum" }, javacall = true, body =
3.9 + "return sum.@net.java.html.js.tests.Sum::all(ZBSIJFDCLjava/lang/String;)(false, 1, 2, 3, 5, 6, 7, 'A', 'TheEND');\n"
3.10 + )
3.11 + static native String primitiveTypes(Sum sum);
3.12
3.13 static String problematicString() {
3.14 return "{\n" +
4.1 --- a/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java Wed Dec 17 17:34:16 2014 +0100
4.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java Wed Dec 17 18:09:12 2014 +0100
4.3 @@ -340,6 +340,11 @@
4.4 assert ret[2].equals("Ciao") : "Expecting Ciao: " + ret[2];
4.5 }
4.6
4.7 + @KOTest public void primitiveTypes() {
4.8 + String all = Bodies.primitiveTypes(new Sum());
4.9 + assert "All:1 34567.08.0".equals(all) : "Valid return type: " + all;
4.10 + }
4.11 +
4.12 @KOTest public void problematicString() {
4.13 String orig = Bodies.problematicString();
4.14 String js = Bodies.problematicCallback();
5.1 --- a/json-tck/src/main/java/net/java/html/js/tests/Sum.java Wed Dec 17 17:34:16 2014 +0100
5.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/Sum.java Wed Dec 17 18:09:12 2014 +0100
5.3 @@ -60,4 +60,8 @@
5.4 }
5.5 return s;
5.6 }
5.7 +
5.8 + public String all(boolean z, byte b, short s, int i, long l, float f, double d, char ch, String str) {
5.9 + return "Ahoj" + z + b + s + i + l + f + d + ch + str;
5.10 + }
5.11 }