1.1 --- a/json-tck/src/main/java/net/java/html/js/tests/Bodies.java Tue Apr 05 12:17:40 2016 +0200
1.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/Bodies.java Sun Apr 17 08:06:55 2016 +0200
1.3 @@ -64,9 +64,6 @@
1.4 @JavaScriptBody(args = {"r"}, wait4js = false, keepAlive = false, javacall = true, body = "r.@java.lang.Runnable::run()();")
1.5 static native void asyncCallback(Runnable r);
1.6
1.7 - @JavaScriptBody(args = {"c"}, javacall = true, body = "return c.@java.util.concurrent.Callable::call()();")
1.8 - static native Object callback(Callable<? extends Object> c);
1.9 -
1.10 @JavaScriptBody(args = {"c", "v"}, javacall = true, body = "var arr = c.@java.util.concurrent.Callable::call()(); arr.push(v); return arr;")
1.11 static native Object callbackAndPush(Callable<String[]> c, String v);
1.12
1.13 @@ -204,6 +201,13 @@
1.14 "return sum.@net.java.html.js.tests.Sum::all(ZBSIJFDCLjava/lang/String;)(false, 1, 2, 3, 5, 6, 7, 32, 'TheEND');\n"
1.15 )
1.16 static native String primitiveTypes(Sum sum);
1.17 +
1.18 + @JavaScriptBody(args = { "call" }, javacall = true, body = ""
1.19 + + "var b = call.@java.util.concurrent.Callable::call()();\n"
1.20 + + "return b ? 'yes' : 'no';\n"
1.21 + )
1.22 + static native String yesNo(Callable<Boolean> call);
1.23 +
1.24
1.25 static String problematicString() {
1.26 return "{\n" +
2.1 --- a/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java Tue Apr 05 12:17:40 2016 +0200
2.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java Sun Apr 17 08:06:55 2016 +0200
2.3 @@ -205,10 +205,16 @@
2.4 assertEquals(r, p, "The null is the same");
2.5 }
2.6
2.7 - @KOTest public void callbackWithResult() {
2.8 - Callable<Boolean> c = new C();
2.9 - Object b = Bodies.callback(c);
2.10 - assertEquals(b, Boolean.TRUE, "Should return true");
2.11 + @KOTest public void callbackWithTrueResult() {
2.12 + Callable<Boolean> c = new C(true);
2.13 + String b = Bodies.yesNo(c);
2.14 + assertEquals(b, "yes", "Should return true");
2.15 + }
2.16 +
2.17 + @KOTest public void callbackWithFalseResult() {
2.18 + Callable<Boolean> c = new C(false);
2.19 + String b = Bodies.yesNo(c);
2.20 + assertEquals(b, "no", "Should return false");
2.21 }
2.22
2.23 @KOTest public void callbackWithParameters() throws InterruptedException {
2.24 @@ -410,9 +416,15 @@
2.25 }
2.26
2.27 private static class C implements Callable<Boolean> {
2.28 + private final boolean ret;
2.29 +
2.30 + public C(boolean ret) {
2.31 + this.ret = ret;
2.32 + }
2.33 +
2.34 @Override
2.35 public Boolean call() throws Exception {
2.36 - return Boolean.TRUE;
2.37 + return ret;
2.38 }
2.39 }
2.40 static void assertEquals(Object a, Object b, String msg) {