feat(core/scripting): disable script optimization

Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>
This commit is contained in:
rhunk
2025-08-02 13:44:22 +02:00
parent 93358d97f4
commit 621c16d7f4
7 changed files with 23 additions and 13 deletions

View File

@@ -1156,6 +1156,10 @@
"disable_log_anonymization": {
"name": "Disable Log Anonymization",
"description": "Disables the anonymization of logs"
},
"disable_optimization": {
"name": "Disable Optimization",
"description": "Disables the optimization of scripts. This may cause performance issues."
}
}
},

View File

@@ -9,4 +9,5 @@ class Scripting : ConfigContainer() {
val autoReload = unique("auto_reload", "snapchat_only", "all")
val integratedUI = boolean("integrated_ui", false) { requireRestart() }
val disableLogAnonymization = boolean("disable_log_anonymization", false) { requireRestart() }
val disableOptimization = boolean("disable_optimization", false) { requireRestart() }
}

View File

@@ -15,8 +15,10 @@ import me.rhunk.snapenhance.common.scripting.ktx.scriptableObject
import me.rhunk.snapenhance.common.scripting.type.ModuleInfo
import me.rhunk.snapenhance.common.scripting.type.Permissions
import me.rhunk.snapenhance.common.scripting.ui.InterfaceManager
import org.mozilla.javascript.*
import org.mozilla.javascript.Function
import org.mozilla.javascript.ScriptableObject
import org.mozilla.javascript.Undefined
import org.mozilla.javascript.Wrapper
import java.io.Reader
import java.lang.reflect.Modifier
import kotlin.reflect.KClass
@@ -235,7 +237,7 @@ class JSModule(
}
}
contextScope(shouldOptimize = true) {
contextScope(shouldOptimize = scriptRuntime.config().scripting.disableOptimization.getNullable() != true) {
evaluateReader(moduleObject, reader, moduleInfo.name, 1, null)
}
}

View File

@@ -4,12 +4,14 @@ import android.content.Context
import android.os.ParcelFileDescriptor
import me.rhunk.snapenhance.bridge.scripting.IScripting
import me.rhunk.snapenhance.common.BuildConfig
import me.rhunk.snapenhance.common.config.impl.RootConfig
import me.rhunk.snapenhance.common.logger.AbstractLogger
import me.rhunk.snapenhance.common.scripting.type.readModuleInfo
import org.mozilla.javascript.ScriptableObject
import java.io.InputStream
open class ScriptRuntime(
val config: () -> RootConfig,
val androidContext: Context,
logger: AbstractLogger,
) {

View File

@@ -1,11 +1,8 @@
package me.rhunk.snapenhance.common.scripting.ktx
import com.faendir.rhino_android.RhinoAndroidHelper
import org.mozilla.javascript.Context
import org.mozilla.javascript.*
import org.mozilla.javascript.Function
import org.mozilla.javascript.Scriptable
import org.mozilla.javascript.ScriptableObject
import org.mozilla.javascript.Wrapper
import java.io.File
private val rhinoAndroidHelper = RhinoAndroidHelper(null as File?)