mirror of
https://github.com/gedoor/legado.git
synced 2025-08-10 00:52:30 +00:00
优化
This commit is contained in:
@@ -37,9 +37,7 @@ import org.mozilla.javascript.RhinoException
|
||||
import org.mozilla.javascript.Script
|
||||
import org.mozilla.javascript.Scriptable
|
||||
import java.io.IOException
|
||||
import kotlin.coroutines.Continuation
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
import kotlin.coroutines.intrinsics.suspendCoroutineUninterceptedOrReturn
|
||||
|
||||
/**
|
||||
* Represents compiled JavaScript code.
|
||||
@@ -102,11 +100,8 @@ internal class RhinoCompiledScript(
|
||||
while (true) {
|
||||
try {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val suspendFunction =
|
||||
pending.applicationState as Function1<Continuation<Any?>, Any?>
|
||||
val functionResult = suspendCoroutineUninterceptedOrReturn { cout ->
|
||||
suspendFunction.invoke(cout)
|
||||
}
|
||||
val suspendFunction = pending.applicationState as suspend () -> Any?
|
||||
val functionResult = suspendFunction()
|
||||
val continuation = pending.continuation
|
||||
ret = cx.resumeContinuation(continuation, scope, functionResult)
|
||||
break
|
||||
|
||||
@@ -57,9 +57,7 @@ import java.security.AccessControlException
|
||||
import java.security.AccessController
|
||||
import java.security.AllPermission
|
||||
import java.security.PrivilegedAction
|
||||
import kotlin.coroutines.Continuation
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
import kotlin.coroutines.intrinsics.suspendCoroutineUninterceptedOrReturn
|
||||
|
||||
/**
|
||||
* Implementation of `ScriptEngine` using the Mozilla Rhino
|
||||
@@ -145,11 +143,8 @@ object RhinoScriptEngine : AbstractScriptEngine(), Invocable, Compilable {
|
||||
while (true) {
|
||||
try {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val suspendFunction =
|
||||
pending.applicationState as Function1<Continuation<Any?>, Any?>
|
||||
val functionResult = suspendCoroutineUninterceptedOrReturn { cout ->
|
||||
suspendFunction.invoke(cout)
|
||||
}
|
||||
val suspendFunction = pending.applicationState as suspend () -> Any?
|
||||
val functionResult = suspendFunction()
|
||||
val continuation = pending.continuation
|
||||
ret = cx.resumeContinuation(continuation, scope, functionResult)
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user