Fix host configuration replacements

This commit is contained in:
Ilya Chernikov
2019-09-03 15:31:18 +02:00
parent f350c24846
commit c5f9e0a399
3 changed files with 8 additions and 8 deletions
@@ -13,6 +13,7 @@ import kotlin.script.experimental.api.ScriptCompilationConfiguration
import kotlin.script.experimental.api.ScriptEvaluationConfiguration
import kotlin.script.experimental.api.hostConfiguration
import kotlin.script.experimental.host.ScriptingHostConfiguration
import kotlin.script.experimental.host.withDefaultsFrom
import kotlin.script.experimental.jvm.baseClassLoader
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
import kotlin.script.experimental.jvm.jvm
@@ -40,13 +41,13 @@ class KotlinJsr223ScriptEngineImpl(
val compilationConfiguration by lazy {
ScriptCompilationConfiguration(baseCompilationConfiguration) {
hostConfiguration(jsr223HostConfiguration)
hostConfiguration.update { it.withDefaultsFrom(jsr223HostConfiguration) }
}
}
val evaluationConfiguration by lazy {
ScriptEvaluationConfiguration(baseEvaluationConfiguration) {
hostConfiguration(jsr223HostConfiguration)
hostConfiguration.update { it.withDefaultsFrom(jsr223HostConfiguration) }
}
}
@@ -30,7 +30,7 @@ open class JvmScriptCompiler(
compilerProxy.compile(
script,
scriptCompilationConfiguration.with {
hostConfiguration(this@JvmScriptCompiler.hostConfiguration)
hostConfiguration.update { it.withDefaultsFrom(this@JvmScriptCompiler.hostConfiguration) }
}
)
}
@@ -6,10 +6,7 @@
package kotlin.script.experimental.jvm
import kotlinx.coroutines.runBlocking
import kotlin.script.experimental.api.ScriptCompilationConfiguration
import kotlin.script.experimental.api.ScriptEvaluationConfiguration
import kotlin.script.experimental.api.baseClass
import kotlin.script.experimental.api.onFailure
import kotlin.script.experimental.api.*
import kotlin.script.experimental.host.createEvaluationConfigurationFromTemplate
import kotlin.script.experimental.jvm.impl.createScriptFromClassLoader
@@ -17,10 +14,12 @@ import kotlin.script.experimental.jvm.impl.createScriptFromClassLoader
fun runCompiledScript(scriptClass: Class<*>, vararg args: String) {
val script = createScriptFromClassLoader(scriptClass.name, scriptClass.classLoader)
val evaluator = BasicJvmScriptEvaluator()
val hostConfiguration = script.compilationConfiguration[ScriptCompilationConfiguration.hostConfiguration]
?: defaultJvmScriptingHostConfiguration
val baseEvaluationConfiguration =
createEvaluationConfigurationFromTemplate(
script.compilationConfiguration[ScriptCompilationConfiguration.baseClass]!!,
defaultJvmScriptingHostConfiguration,
hostConfiguration,
scriptClass.kotlin
)
val evaluationConfiguration = ScriptEvaluationConfiguration(baseEvaluationConfiguration) {