diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/interop/ScriptEngineV8.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/interop/ScriptEngineV8.kt index 2c5fda375d1..2cf8acb8419 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/interop/ScriptEngineV8.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/interop/ScriptEngineV8.kt @@ -9,9 +9,20 @@ import com.eclipsesource.v8.V8 import com.eclipsesource.v8.V8Array import com.eclipsesource.v8.V8Object import com.eclipsesource.v8.utils.V8ObjectUtils +import com.intellij.openapi.util.io.FileUtil import java.io.File class ScriptEngineV8 : ScriptEngine { + companion object { + // It's important that this is not created per test, but rather per process. + val LIBRARY_PATH_BASE = FileUtil.createTempDirectory( + File(System.getProperty("java.io.tmpdir")), + "j2v8_library_path", + "", + true + ).path + } + override fun releaseObject(t: T) { (t as? V8Object)?.release() } @@ -22,7 +33,7 @@ class ScriptEngineV8 : ScriptEngine { return context.also { v8result.release() } } - private val myRuntime: V8 = V8.createV8Runtime("global") + private val myRuntime: V8 = V8.createV8Runtime("global", LIBRARY_PATH_BASE) @Suppress("UNCHECKED_CAST") override fun eval(script: String): T {