diff --git a/modules/rhino/src/main/java/com/script/rhino/RhinoCompiledScript.kt b/modules/rhino/src/main/java/com/script/rhino/RhinoCompiledScript.kt index fb495b4b0685..967b581f3df6 100644 --- a/modules/rhino/src/main/java/com/script/rhino/RhinoCompiledScript.kt +++ b/modules/rhino/src/main/java/com/script/rhino/RhinoCompiledScript.kt @@ -98,10 +98,9 @@ internal class RhinoCompiledScript( } override fun eval(scope: Scriptable, coroutineContext: CoroutineContext?): Any? { - val cx = Context.enter() - if (cx is RhinoContext) { - cx.coroutineContext = coroutineContext - } + val cx = Context.enter() as RhinoContext + val previousCoroutineContext = cx.coroutineContext + cx.coroutineContext = coroutineContext val result: Any? try { val ret = script.exec(cx, scope) @@ -117,6 +116,7 @@ internal class RhinoCompiledScript( se.initCause(re) throw se } finally { + cx.coroutineContext = previousCoroutineContext Context.exit() } return result