Fix and test evaluation of scripts with default configurations
This commit is contained in:
+9
-3
@@ -31,16 +31,22 @@ interface CompiledJvmScriptsCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open class JvmScriptCompiler(
|
open class JvmScriptCompiler(
|
||||||
hostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration,
|
baseHostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration,
|
||||||
val compilerProxy: ScriptJvmCompilerProxy = ScriptJvmCompilerIsolated(hostConfiguration.withDefaults()),
|
compilerProxy: ScriptJvmCompilerProxy? = null,
|
||||||
val cache: CompiledJvmScriptsCache = CompiledJvmScriptsCache.NoCache
|
val cache: CompiledJvmScriptsCache = CompiledJvmScriptsCache.NoCache
|
||||||
) : ScriptCompiler {
|
) : ScriptCompiler {
|
||||||
|
|
||||||
|
val hostConfiguration = baseHostConfiguration.withDefaults()
|
||||||
|
|
||||||
|
val compilerProxy: ScriptJvmCompilerProxy = compilerProxy ?: ScriptJvmCompilerIsolated(hostConfiguration)
|
||||||
|
|
||||||
override suspend operator fun invoke(
|
override suspend operator fun invoke(
|
||||||
script: SourceCode,
|
script: SourceCode,
|
||||||
scriptCompilationConfiguration: ScriptCompilationConfiguration
|
scriptCompilationConfiguration: ScriptCompilationConfiguration
|
||||||
): ResultWithDiagnostics<CompiledScript<*>> =
|
): ResultWithDiagnostics<CompiledScript<*>> =
|
||||||
scriptCompilationConfiguration.refineBeforeParsing(script).onSuccess { refinedConfiguration ->
|
scriptCompilationConfiguration.with {
|
||||||
|
hostConfiguration(this@JvmScriptCompiler.hostConfiguration)
|
||||||
|
}.refineBeforeParsing(script).onSuccess { refinedConfiguration ->
|
||||||
val cached = cache.get(script, refinedConfiguration)
|
val cached = cache.get(script, refinedConfiguration)
|
||||||
|
|
||||||
if (cached != null) return cached.asSuccess()
|
if (cached != null) return cached.asSuccess()
|
||||||
|
|||||||
Reference in New Issue
Block a user