Testing whether function can be returned value and a parameter for method call
authorJaroslav Tulach <jtulach@netbeans.org>
Thu, 18 Dec 2014 04:31:30 +0100
changeset 91705eb1b3bef41
parent 916 7e1929093f06
child 918 418c66d82246
Testing whether function can be returned value and a parameter for method call
json-tck/src/main/java/net/java/html/js/tests/Bodies.java
json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java
     1.1 --- a/json-tck/src/main/java/net/java/html/js/tests/Bodies.java	Thu Dec 18 03:29:48 2014 +0100
     1.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/Bodies.java	Thu Dec 18 04:31:30 2014 +0100
     1.3 @@ -126,6 +126,14 @@
     1.4          "return @net.java.html.js.tests.Bodies::fourtyTwo()();"
     1.5      )
     1.6      public static native int staticCallback();
     1.7 +
     1.8 +    @JavaScriptBody(args = {}, javacall = true, body = 
     1.9 +        "return function() { return @net.java.html.js.tests.Bodies::fourtyTwo()(); }"
    1.10 +    )
    1.11 +    public static native Object delayCallback();
    1.12 +    
    1.13 +    @JavaScriptBody(args = { "fn" }, body = "return fn();")
    1.14 +    public static native Object invokeFn(Object fn);
    1.15      
    1.16      static int fourtyTwo() {
    1.17          return 42;
     2.1 --- a/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java	Thu Dec 18 03:29:48 2014 +0100
     2.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java	Thu Dec 18 04:31:30 2014 +0100
     2.3 @@ -324,6 +324,14 @@
     2.4          int r = Bodies.staticCallback();
     2.5          assert r == 42 : "Expecting 42: " + r;
     2.6      }
     2.7 +
     2.8 +    @KOTest public void delayCallback() {
     2.9 +        Object fn = Bodies.delayCallback();
    2.10 +        Object r = Bodies.invokeFn(fn);
    2.11 +        assert r != null : "Is not null";
    2.12 +        assert r instanceof Integer : "Is integer " + r;
    2.13 +        assert ((Integer)r) == 42 : "Expecting 42: " + r;
    2.14 +    }
    2.15      
    2.16      @KOTest public void asyncCallFromAJSCallbackNeedToFinishBeforeReturnToJS() {
    2.17          int r = Bodies.incAsync();