diff --git a/autojs/src/main/assets/modules/__engines__.js b/autojs/src/main/assets/modules/__engines__.js index 828617e6..9c428c78 100644 --- a/autojs/src/main/assets/modules/__engines__.js +++ b/autojs/src/main/assets/modules/__engines__.js @@ -18,17 +18,7 @@ module.exports = function(__runtime__, scope){ } engines.myEngine = function(){ - var engine = Object.create(rtEngines.myEngine()); - if(!execArgv){ - execArgv = {}; - var iterator = engine.getTag("execution.config").arguments.entrySet().iterator(); - while(iterator.hasNext()){ - var entry = iterator.next(); - execArgv[entry.getKey()] = entry.getValue(); - } - } - engine.execArgv = execArgv; - return engine; + return rtEngines.myEngine(); } engines.all = function(){ @@ -59,5 +49,14 @@ module.exports = function(__runtime__, scope){ return config; } + var engine = engines.myEngine(); + var execArgv = {}; + var iterator = engine.getTag("execution.config").arguments.entrySet().iterator(); + while(iterator.hasNext()){ + var entry = iterator.next(); + execArgv[entry.getKey()] = entry.getValue(); + } + engine.execArgv = execArgv; + return engines; } \ No newline at end of file diff --git a/autojs/src/main/java/com/stardust/autojs/engine/JavaScriptEngine.java b/autojs/src/main/java/com/stardust/autojs/engine/JavaScriptEngine.java index 0754d7e9..586ade0d 100644 --- a/autojs/src/main/java/com/stardust/autojs/engine/JavaScriptEngine.java +++ b/autojs/src/main/java/com/stardust/autojs/engine/JavaScriptEngine.java @@ -1,7 +1,5 @@ package com.stardust.autojs.engine; -import androidx.annotation.CallSuper; - import com.stardust.autojs.runtime.ScriptRuntime; import com.stardust.autojs.script.JavaScriptSource; import com.stardust.autojs.script.ScriptSource; @@ -12,6 +10,7 @@ import com.stardust.autojs.script.ScriptSource; public abstract class JavaScriptEngine extends ScriptEngine.AbstractScriptEngine { private ScriptRuntime mRuntime; + private Object mExecArgv; @Override public Object execute(JavaScriptSource scriptSource) { @@ -44,6 +43,17 @@ public abstract class JavaScriptEngine extends ScriptEngine.AbstractScriptEngine return (ScriptSource) getTag(TAG_SOURCE); } + public void setExecArgv(Object execArgv) { + if (mExecArgv != null) { + return; + } + mExecArgv = execArgv; + } + + public Object getExecArgv() { + return mExecArgv; + } + @Override public synchronized void destroy() { mRuntime.onExit(); @@ -53,6 +63,7 @@ public abstract class JavaScriptEngine extends ScriptEngine.AbstractScriptEngine @Override public String toString() { return "ScriptEngine@" + Integer.toHexString(hashCode()) + "{" + + "id=" + getId() + "," + "source='" + getTag(TAG_SOURCE) + "'," + "cwd='" + cwd() + "'" + "}";