fix: fix bugs in event mechanism

This commit is contained in:
Frank.R.Wu 2021-12-03 15:30:12 +08:00
parent 372a8bd869
commit eb371580af
2 changed files with 9 additions and 10 deletions

View File

@ -459,11 +459,11 @@ public class DesktopEngine extends JSEngine {
this.redirectTracePS(ppc);
}
Invocable cal = engine;
if (fun.isExport()
if (fun.isExport() ||
// if the function has been registered as event handler
|| (fun.isHandler()
&& (input.getRequester().length() == 40
|| input.getRequester().equals("event")))) {
(fun.isHandler() &&
null != input.getRequester() &&
input.getRequester().startsWith("event"))) {
Object ret = null;
// long start = System.currentTimeMillis();

View File

@ -10,8 +10,7 @@ import java.util.Set;
public class JSONTool {
public static JsonElement convertMirrorToJson(Object ret2) {
JsonElement jsonElement = convertMirrorToJsonInternal(ret2, new HashSet<>());
return jsonElement;
return convertMirrorToJsonInternal(ret2, new HashSet<>());
}
public static Object convertJsonElementToMirror(JsonElement jsonElement) {
@ -57,7 +56,7 @@ public class JSONTool {
for (String str : som.getOwnKeys(true)) {
try {
if (Integer.parseInt(str) >= 0)
jarray.add(convertMirrorToJsonInternal(som.getMember(str),recorded));
jarray.add(convertMirrorToJsonInternal(som.getMember(str), recorded));
} catch (Exception e) {
// System.out.println("[JSONTool] ignore key:"+str);
}
@ -66,7 +65,7 @@ public class JSONTool {
} else {
JsonObject jo = new JsonObject();
for (String str : som.getOwnKeys(true)) {
jo.add(str, convertMirrorToJsonInternal(som.getMember(str),recorded));
jo.add(str, convertMirrorToJsonInternal(som.getMember(str), recorded));
}
return jo;
}
@ -83,7 +82,7 @@ public class JSONTool {
for (String str : som.getOwnKeys(true)) {
try {
if (Integer.parseInt(str) >= 0)
jarray.add(convertMirrorToJsonInternal(som.getMember(str),recorded));
jarray.add(convertMirrorToJsonInternal(som.getMember(str), recorded));
} catch (Exception e) {
// System.out.println("[JSONTool] ignore key:"+str);
}
@ -92,7 +91,7 @@ public class JSONTool {
} else {
JsonObject jo = new JsonObject();
for (String str : som.getOwnKeys(true)) {
jo.add(str, convertMirrorToJsonInternal(som.getMember(str),recorded));
jo.add(str, convertMirrorToJsonInternal(som.getMember(str), recorded));
}
return jo;
}