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();