Try to consider String a primitive type weakfx
authorJaroslav Tulach <jtulach@netbeans.org>
Wed, 17 Dec 2014 18:09:12 +0100
branchweakfx
changeset 9126aa384fee649
parent 911 3f5a6b1ac510
child 913 969216d2cb0b
Try to consider String a primitive type
boot-fx/src/main/java/org/netbeans/html/boot/fx/AbstractFXPresenter.java
boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java
json-tck/src/main/java/net/java/html/js/tests/Bodies.java
json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java
json-tck/src/main/java/net/java/html/js/tests/Sum.java
     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  }