diff --git a/.idea/modules.xml b/.idea/modules.xml index 7e950955..4fac18b4 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ - + diff --git a/autojs/build.gradle b/autojs/build.gradle index 605cebd5..c7d9d43f 100644 --- a/autojs/build.gradle +++ b/autojs/build.gradle @@ -49,6 +49,7 @@ dependencies { compile(name: 'libtermexec-release', ext: 'aar') compile(name: 'emulatorview-release', ext: 'aar') compile(name: 'term-debug', ext: 'aar') + compile files('libs/rhino-1.7.7.2.jar') compile project(path: ':common') compile project(path: ':automator') } diff --git a/autojs/libs/rhino-1.7.8-20170311.033547-42.jar b/autojs/libs/rhino-1.7.8-20170311.033547-42.jar deleted file mode 100644 index e88af595..00000000 Binary files a/autojs/libs/rhino-1.7.8-20170311.033547-42.jar and /dev/null differ diff --git a/autojs/src/main/assets/javascript_engine_init.js b/autojs/src/main/assets/javascript_engine_init.js index e1da05c3..d874b4cf 100644 --- a/autojs/src/main/assets/javascript_engine_init.js +++ b/autojs/src/main/assets/javascript_engine_init.js @@ -39,6 +39,9 @@ __runtime__.bridges.setBridges({ } } return arr; + }, + toString: function(o){ + return String(o); } }); @@ -67,3 +70,4 @@ require("__general__")(__runtime__, this); __importClass__(android.view.KeyEvent); __importClass__(com.stardust.autojs.core.util.Shell); + diff --git a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.java b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.java index ef2e786a..5ce93f73 100644 --- a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.java +++ b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.java @@ -184,7 +184,7 @@ public class RhinoJavaScriptEngine extends JavaScriptEngine { @Override public Object wrap(Context cx, Scriptable scope, Object obj, Class staticType) { if (staticType == String.class) { - return createNativeString(obj); + return getRuntime().bridges.toString(obj); } if (staticType == UiObjectCollection.class ) { return getRuntime().bridges.toArray(obj); diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptBridges.java b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptBridges.java index 0678079e..120497c3 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptBridges.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptBridges.java @@ -8,6 +8,7 @@ import com.stardust.autojs.core.accessibility.UiCollection; public class ScriptBridges { + public interface Bridges { Object[] NO_ARGUMENTS = new Object[0]; @@ -15,6 +16,8 @@ public class ScriptBridges { Object call(Object func, Object target, Object[] arg); Object toArray(Object o); + + Object toString(Object obj); } private Bridges mBridges; @@ -38,4 +41,10 @@ public class ScriptBridges { checkBridges(); return mBridges.toArray(c); } + + + public Object toString(Object obj) { + checkBridges(); + return mBridges.toString(obj); + } }