summaryrefslogtreecommitdiff
path: root/scalajslib/jsbridges
diff options
context:
space:
mode:
authorLorenzo Gabriele <lorenzogabriele@email.it>2018-03-10 04:10:48 +0100
committerLi Haoyi <haoyi.sg@gmail.com>2018-03-09 19:10:48 -0800
commit3635964e18c55a66c214cd3261f4cc515a6982a0 (patch)
treeffbf703e0a4ec210c9ed57bee5b47610daa6cb6e /scalajslib/jsbridges
parent877715fbb4e00f1593520045439a8834cf054bd6 (diff)
downloadmill-3635964e18c55a66c214cd3261f4cc515a6982a0.tar.gz
mill-3635964e18c55a66c214cd3261f4cc515a6982a0.tar.bz2
mill-3635964e18c55a66c214cd3261f4cc515a6982a0.zip
ScalaJSModule: Support to switch between NoModule and CommonJSModule ModuleKinds (#212)
Diffstat (limited to 'scalajslib/jsbridges')
-rw-r--r--scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala14
-rw-r--r--scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala14
2 files changed, 22 insertions, 6 deletions
diff --git a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
index 57fbf65a..283576ab 100644
--- a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
+++ b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
@@ -7,19 +7,27 @@ import java.io.File
import org.scalajs.core.tools.io.IRFileCache.IRContainer
import org.scalajs.core.tools.io._
import org.scalajs.core.tools.jsdep.ResolvedJSDependency
-import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker, Semantics}
+import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker, Semantics, ModuleKind => ScalaJSModuleKind}
import org.scalajs.core.tools.logging.ScalaConsoleLogger
import org.scalajs.jsenv._
import org.scalajs.jsenv.nodejs._
import org.scalajs.testadapter.TestAdapter
class ScalaJSBridge extends mill.scalajslib.ScalaJSBridge {
- def link(sources: Array[File], libraries: Array[File], dest: File, main: String, fullOpt: Boolean): Unit = {
+ def link(sources: Array[File], libraries: Array[File], dest: File, main: String, fullOpt: Boolean, moduleKind: ModuleKind): Unit = {
val semantics = fullOpt match {
case true => Semantics.Defaults.optimized
case false => Semantics.Defaults
}
- val config = StandardLinker.Config().withOptimizer(fullOpt).withClosureCompilerIfAvailable(fullOpt).withSemantics(semantics)
+ val scalaJSModuleKind = moduleKind match {
+ case ModuleKind.NoModule => ScalaJSModuleKind.NoModule
+ case ModuleKind.CommonJSModule => ScalaJSModuleKind.CommonJSModule
+ }
+ val config = StandardLinker.Config()
+ .withOptimizer(fullOpt)
+ .withClosureCompilerIfAvailable(fullOpt)
+ .withSemantics(semantics)
+ .withModuleKind(scalaJSModuleKind)
val linker = StandardLinker(config)
val sourceSJSIRs = sources.map(new FileVirtualScalaJSIRFile(_))
val jars = libraries.map(jar => IRContainer.Jar(new FileVirtualBinaryFile(jar) with VirtualJarFile))
diff --git a/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala b/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala
index d7ed26eb..711ef200 100644
--- a/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala
+++ b/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala
@@ -5,19 +5,27 @@ package bridge
import java.io.File
import org.scalajs.core.tools.io._
-import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker, Semantics}
+import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker, Semantics, ModuleKind => ScalaJSModuleKind}
import org.scalajs.core.tools.logging.ScalaConsoleLogger
import org.scalajs.jsenv.ConsoleJSConsole
import org.scalajs.jsenv.nodejs._
import org.scalajs.testadapter.TestAdapter
class ScalaJSBridge extends mill.scalajslib.ScalaJSBridge {
- def link(sources: Array[File], libraries: Array[File], dest: File, main: String, fullOpt: Boolean): Unit = {
+ def link(sources: Array[File], libraries: Array[File], dest: File, main: String, fullOpt: Boolean, moduleKind: ModuleKind): Unit = {
val semantics = fullOpt match {
case true => Semantics.Defaults.optimized
case false => Semantics.Defaults
}
- val config = StandardLinker.Config().withOptimizer(fullOpt).withClosureCompilerIfAvailable(fullOpt).withSemantics(semantics)
+ val scalaJSModuleKind = moduleKind match {
+ case ModuleKind.NoModule => ScalaJSModuleKind.NoModule
+ case ModuleKind.CommonJSModule => ScalaJSModuleKind.CommonJSModule
+ }
+ val config = StandardLinker.Config()
+ .withOptimizer(fullOpt)
+ .withClosureCompilerIfAvailable(fullOpt)
+ .withSemantics(semantics)
+ .withModuleKind(scalaJSModuleKind)
val linker = StandardLinker(config)
val cache = new IRFileCache().newCache
val sourceIRs = sources.map(FileVirtualScalaJSIRFile)