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 ec3e1f39c352eef73a896c28fafc77cf5608570c Author: Jaroslav Tulach <jaroslav.tul...@apidesign.org> AuthorDate: Tue Dec 22 15:09:25 2020 +0100 Resolve deferred, then dispatch, then resolve deferred --- .../org/netbeans/html/presenters/spi/Generic.java | 33 ++++++++++++---------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java index b6d5b38..e452569 100644 --- a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java +++ b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java @@ -345,18 +345,16 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable { "fnClose=) {\n", "fnBegin= var encParams = ds(@1).toJava(null, -1, [", "fnPPar=@2 p@1", """ - fnBody=]); - var v = ds(@3).toVM('c', '@1', '@2', thiz ? thiz.id : null, encParams); - while (v !== null && v.indexOf && v.indexOf('javascript:') === 0) { - var script = v.substring(11); - try { - var r = eval.call(null, script); - } catch (e) { console.warn('error: ' + e + ' executing: ' + script + ' at:\\n' + e.stack); } - v = ds(@3).toVM('jr', null, null, null, null); } - return @4 ? eval('(' + v + ')') : v; - }; - """, - + fnBody=]); + var v = ds(@3).toVM('c', '@1', '@2', thiz ? thiz.id : null, encParams); + while (v !== null && v.indexOf && v.indexOf('javascript:') === 0) { + var script = v.substring(11); + try { + var r = eval.call(null, script); + } catch (e) { console.warn('error: ' + e + ' executing: ' + script + ' at:\\n' + e.stack); } + v = ds(@3).toVM('jr', null, null, null, null); } + return @4 ? eval('(' + v + ')') : v; + };""", "fnFoot=ds(@2).rg(@1, jsvm);\n" }) final Integer exportVm(Object vm) { @@ -671,9 +669,6 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable { boolean first = top == null || Boolean.TRUE.equals(top.done); log(Level.FINE, "jc: {0}@{1}args: {2} is first: {3}, now: {4}", new Object[]{method.getName(), vm, params, first, topMostCall()}); Item newItem = registerCall(new Item(nextCallId(), top, method, vm, converted)); - if (first || synchronous) { - dispatch(newItem); - } return javaresult(); } } @@ -690,6 +685,14 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable { } finished[0] = false; final Item top = topMostCall(); + if (top.method != null) { + if (top.done == null) { + dispatch(top); + if (deferred != null) { + continue; + } + } + } String jsToExec = top.inJavaScript(finished); log(Level.FINE, "jr: {0} jsToExec: {1} finished: {2}", new Object[]{topMostCall(), jsToExec, finished[0]}); if (jsToExec != null) { --------------------------------------------------------------------- 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