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