diff --git a/libraries/scripting/jsr223/src/kotlin/script/experimental/jsr223/KotlinJsr223DefaultScriptEngineFactory.kt b/libraries/scripting/jsr223/src/kotlin/script/experimental/jsr223/KotlinJsr223DefaultScriptEngineFactory.kt index 2e0d3fc1950..f19e21218db 100644 --- a/libraries/scripting/jsr223/src/kotlin/script/experimental/jsr223/KotlinJsr223DefaultScriptEngineFactory.kt +++ b/libraries/scripting/jsr223/src/kotlin/script/experimental/jsr223/KotlinJsr223DefaultScriptEngineFactory.kt @@ -6,7 +6,10 @@ package kotlin.script.experimental.jsr223 import org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineFactoryBase +import org.jetbrains.kotlin.cli.common.repl.ScriptArgsWithTypes import java.io.File +import javax.script.Bindings +import javax.script.ScriptContext import javax.script.ScriptEngine import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.jvm.JvmScriptCompilationConfigurationBuilder @@ -50,6 +53,6 @@ class KotlinJsr223DefaultScriptEngineFactory : KotlinJsr223JvmScriptEngineFactor } }, evaluationConfiguration - ) + ) { ScriptArgsWithTypes(arrayOf(it.getBindings(ScriptContext.ENGINE_SCOPE).orEmpty()), arrayOf(Bindings::class)) } } diff --git a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/jsr223/KotlinJsr223ScriptEngineImpl.kt b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/jsr223/KotlinJsr223ScriptEngineImpl.kt index 8a585571807..41e00860f03 100644 --- a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/jsr223/KotlinJsr223ScriptEngineImpl.kt +++ b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/jsr223/KotlinJsr223ScriptEngineImpl.kt @@ -26,7 +26,8 @@ import kotlin.script.experimental.jvmhost.repl.JvmReplEvaluatorState class KotlinJsr223ScriptEngineImpl( factory: ScriptEngineFactory, baseCompilationConfiguration: ScriptCompilationConfiguration, - baseEvaluationConfiguration: ScriptEvaluationConfiguration + baseEvaluationConfiguration: ScriptEvaluationConfiguration, + val getScriptArgs: (context: ScriptContext) -> ScriptArgsWithTypes? ) : KotlinJsr223JvmScriptEngineBase(factory), KotlinJsr223InvocableScriptEngine { @Volatile @@ -64,8 +65,7 @@ class KotlinJsr223ScriptEngineImpl( override fun createState(lock: ReentrantReadWriteLock): IReplStageState<*> = replEvaluator.createState(lock) - override fun overrideScriptArgs(context: ScriptContext): ScriptArgsWithTypes? = - ScriptArgsWithTypes(arrayOf(context.getBindings(ScriptContext.ENGINE_SCOPE).orEmpty()), arrayOf(Bindings::class)) + override fun overrideScriptArgs(context: ScriptContext): ScriptArgsWithTypes? = getScriptArgs(context) override val invokeWrapper: InvokeWrapper? get() = null