From 29cbcbd25a9d56fc8147f71abfd4ad7325b5f31b Mon Sep 17 00:00:00 2001 From: aiselp Date: Thu, 14 Sep 2023 21:09:05 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autojs/engine/RhinoJavaScriptEngine.kt | 52 ++++------- .../stardust/autojs/runtime/api/Timers.java | 93 ------------------- .../com/stardust/autojs/runtime/api/Timers.kt | 70 ++++++++++++++ 3 files changed, 88 insertions(+), 127 deletions(-) delete mode 100644 autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java create mode 100644 autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.kt diff --git a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt index 51dfa0a0e..dd1563689 100644 --- a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt +++ b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt @@ -13,12 +13,14 @@ import com.stardust.autojs.runtime.ScriptRuntime import com.stardust.autojs.script.JavaScriptSource import com.stardust.automator.UiObjectCollection import com.stardust.pio.UncheckedIOException -import org.mozilla.javascript.* +import org.mozilla.javascript.Context +import org.mozilla.javascript.Script +import org.mozilla.javascript.Scriptable +import org.mozilla.javascript.ScriptableObject import org.mozilla.javascript.commonjs.module.provider.SoftCachingModuleScriptProvider import java.io.IOException import java.io.InputStreamReader -import java.io.Reader -import java.util.* +import java.util.Locale import java.util.concurrent.ConcurrentHashMap /** @@ -28,31 +30,24 @@ import java.util.concurrent.ConcurrentHashMap open class RhinoJavaScriptEngine(private val mAndroidContext: android.content.Context) : JavaScriptEngine() { - val context: Context - private val mScriptable: TopLevelScope + val context: Context = enterContext() + private val mScriptable: TopLevelScope = createScope(this.context) lateinit var thread: Thread private set - private val initScript: Script - get() { - return sInitScript ?: try { - val reader = InputStreamReader(mAndroidContext.assets.open("init.js")) - val script = context.compileReader(reader, SOURCE_NAME_INIT, 1, null) - sInitScript = script - script - } catch (e: IOException) { - throw UncheckedIOException(e) - } + private val initScript: Script by lazy