diff options
Diffstat (limited to 'scalajslib/src/mill/scalajslib/ScalaJSBridge.scala')
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSBridge.scala | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala index 20e6542c..507d8af7 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala @@ -12,6 +12,12 @@ sealed trait OptimizeMode object FastOpt extends OptimizeMode object FullOpt extends OptimizeMode +sealed trait ModuleKind +object ModuleKind{ + object NoModule extends ModuleKind + object CommonJSModule extends ModuleKind +} + class ScalaJSWorker { private var scalaInstanceCache = Option.empty[(Long, ScalaJSBridge)] @@ -21,8 +27,8 @@ class ScalaJSWorker { scalaInstanceCache match { case Some((sig, bridge)) if sig == classloaderSig => bridge case _ => - val cl = new URLClassLoader( - toolsClasspath.map(_.toIO.toURI.toURL).toArray, + val cl = mill.util.ClassLoader.create( + toolsClasspath.map(_.toIO.toURI.toURL).toVector, getClass.getClassLoader ) val bridge = cl @@ -40,13 +46,15 @@ class ScalaJSWorker { libraries: Agg[Path], dest: File, main: Option[String], - fullOpt: Boolean): Unit = { + fullOpt: Boolean, + moduleKind: ModuleKind): Unit = { bridge(toolsClasspath).link( sources.items.map(_.toIO).toArray, libraries.items.map(_.toIO).toArray, dest, main.orNull, - fullOpt + fullOpt, + moduleKind ) } @@ -68,7 +76,8 @@ trait ScalaJSBridge { libraries: Array[File], dest: File, main: String, - fullOpt: Boolean): Unit + fullOpt: Boolean, + moduleKind: ModuleKind): Unit def run(config: NodeJSConfig, linkedFile: File): Unit |