This commit is contained in:
HapeLee committed 2025-06-04 13:33:51 +08:00
1 parent b86d90021c
commit 6c0757c91b
972 files changed
+6885 -7321

No files matched your search

@@ -0,0 +1,46 @@
package io.legato.kazusa.help.rhino
import com.script.rhino.JavaObjectWrapFactory
import org.mozilla.javascript.NativeJavaObject
import org.mozilla.javascript.Scriptable
class NativeBaseSource(scope: Scriptable?, javaObject: Any, staticType: Class<*>?) :
NativeJavaObject(scope, javaObject, staticType) {
override fun has(name: String, start: Scriptable): Boolean {
if (name != "setVariable" && name.length > 3 && name.startsWith("set")) {
val name = name.substring(3).replaceFirstChar { it.lowercase() }
if (super.has(name, start)) {
return false
}
}
return super.has(name, start)
}
override fun get(name: String, start: Scriptable): Any? {
if (name != "setVariable" && name.length > 3 && name.startsWith("set")) {
val name = name.substring(3).replaceFirstChar { it.lowercase() }
if (super.has(name, start)) {
return NOT_FOUND
}
}
return super.get(name, start)
}
override fun put(
name: String,
start: Scriptable,
value: Any?
) {
if (name == "variable") {
super.put(name, start, value)
}
}
companion object {
val factory = JavaObjectWrapFactory { scope, javaObject, staticType ->
NativeBaseSource(scope, javaObject, staticType)
}
}
}