This is an automated email from the ASF dual-hosted git repository.

jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git

commit 074b0b948988ff46695fde9877e7461d8e1373fa
Author: Jaroslav Tulach <jaroslav.tul...@apidesign.org>
AuthorDate: Wed Jul 6 07:00:37 2022 +0200

    Register global function callbacks under different names
---
 .../net/java/html/js/tests/AsyncJavaScriptAction.java  | 18 +++++++++++-------
 .../java/net/java/html/js/tests/AsyncJavaTest.java     |  7 ++++---
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git 
a/json-tck/src/main/java/net/java/html/js/tests/AsyncJavaScriptAction.java 
b/json-tck/src/main/java/net/java/html/js/tests/AsyncJavaScriptAction.java
index 7cf1d667..26c255a5 100644
--- a/json-tck/src/main/java/net/java/html/js/tests/AsyncJavaScriptAction.java
+++ b/json-tck/src/main/java/net/java/html/js/tests/AsyncJavaScriptAction.java
@@ -21,16 +21,20 @@ package net.java.html.js.tests;
 import net.java.html.js.JavaScriptBody;
 
 final class AsyncJavaScriptAction {
+    private final String name;
     private int result;
 
-    private AsyncJavaScriptAction() {
+    private AsyncJavaScriptAction(String name) {
+        this.name = name;
     }
 
     static AsyncJavaScriptAction defineCallback(boolean wait4js) {
-        AsyncJavaScriptAction action = new AsyncJavaScriptAction();
+        AsyncJavaScriptAction action;
         if (wait4js) {
+            action = new AsyncJavaScriptAction("callJava");
             action.defineCallbackImpl();
         } else {
+            action = new AsyncJavaScriptAction("callJavaNoWait");
             action.defineCallbackImplNoWait4js();
         }
         return action;
@@ -48,7 +52,7 @@ final class AsyncJavaScriptAction {
     @JavaScriptBody(args = {}, javacall = true, wait4js = false, wait4java = 
false, body = """
         var self = this;
         var global = (0 || eval)("this");
-        global.callJava = function(s) {
+        global.callJavaNoWait = function(s) {
             se...@net.java.html.js.tests.AsyncJavaScriptAction::callJava(I)(s);
         };
     """)
@@ -58,16 +62,16 @@ final class AsyncJavaScriptAction {
         this.result = i;
     }
 
-    static boolean invokeCallbackLater(int n) {
+    boolean invokeCallbackLater(int n) {
         return JsUtils.executeNow(AsyncJavaScriptAction.class, """
             if (typeof setTimeout === 'function') {
                 setTimeout(function() {
-                    callJava($n);
+                    $name($n);
                 }, 5);
             } else {
-                callJava($n);
+                $name($n);
             }
-        """.replaceAll("\\$n", "" + n));
+        """.replaceAll("\\$name", name).replaceAll("\\$n", "" + n));
     }
 
     int getResult() {
diff --git a/json-tck/src/main/java/net/java/html/js/tests/AsyncJavaTest.java 
b/json-tck/src/main/java/net/java/html/js/tests/AsyncJavaTest.java
index 258bd5e0..4c8f63b7 100644
--- a/json-tck/src/main/java/net/java/html/js/tests/AsyncJavaTest.java
+++ b/json-tck/src/main/java/net/java/html/js/tests/AsyncJavaTest.java
@@ -59,11 +59,12 @@ public class AsyncJavaTest {
         PhaseExecutor.schedule(phases, () -> {
             return AsyncJavaScriptAction.defineCallback(wait4js);
         }).then((action) -> {
-            AsyncJavaScriptAction.invokeCallbackLater(33);
+            action.invokeCallbackLater(33);
         }).then((action) -> {
-            assertEquals(action.getResult(), 33, "Set to 33");
+            final int r = action.getResult();
+            assertEquals(r, 33, "Set to 33");
         }).then((action) -> {
-            AsyncJavaScriptAction.invokeCallbackLater(42);
+            action.invokeCallbackLater(42);
         }).then((action) -> {
             assertEquals(action.getResult(), 42, "Set to 42");
         }).start();


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to