Extract arguments calculation for base JSR223 engine into an argument

This commit is contained in:
Ilya Chernikov
2019-07-11 17:32:49 +02:00
parent e8fa139dc8
commit 0108a76e99
2 changed files with 7 additions and 4 deletions
@@ -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)) }
}
@@ -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