summaryrefslogtreecommitdiff
path: root/scalajslib
diff options
context:
space:
mode:
authorDennis4b <Dennis4b@users.noreply.github.com>2018-03-06 05:55:58 +0100
committerLi Haoyi <haoyi.sg@gmail.com>2018-03-05 20:55:58 -0800
commitd4a00892f9c9c43e3d0f6906482b27e04d79d8dc (patch)
treed419f57ef27253c949ff3c7d37550764b9e6bb11 /scalajslib
parenta8885fe610eb48c11fc48ca47bfa1f2a295d5bc2 (diff)
downloadmill-d4a00892f9c9c43e3d0f6906482b27e04d79d8dc.tar.gz
mill-d4a00892f9c9c43e3d0f6906482b27e04d79d8dc.tar.bz2
mill-d4a00892f9c9c43e3d0f6906482b27e04d79d8dc.zip
Improve fullOpt behavior (#203)
Specifically, fix 2 issues in order to better mirror the behavior of "sbt fullOptJS" - Invoke the Google Closure Compiler after generating the optimized Javascript output - Set scala.scalajs.LinkingInfo.developmentMode = false (and productionMode = true) when building fullOpt in order to allow Scala.js code to distinguish between development and production mode.
Diffstat (limited to 'scalajslib')
-rw-r--r--scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala8
-rw-r--r--scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala8
2 files changed, 12 insertions, 4 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 2f123650..57fbf65a 100644
--- a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
+++ b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
@@ -7,7 +7,7 @@ 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}
+import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker, Semantics}
import org.scalajs.core.tools.logging.ScalaConsoleLogger
import org.scalajs.jsenv._
import org.scalajs.jsenv.nodejs._
@@ -15,7 +15,11 @@ 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 = {
- val config = StandardLinker.Config().withOptimizer(fullOpt)
+ val semantics = fullOpt match {
+ case true => Semantics.Defaults.optimized
+ case false => Semantics.Defaults
+ }
+ val config = StandardLinker.Config().withOptimizer(fullOpt).withClosureCompilerIfAvailable(fullOpt).withSemantics(semantics)
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 43dbf45a..d7ed26eb 100644
--- a/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala
+++ b/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala
@@ -5,7 +5,7 @@ package bridge
import java.io.File
import org.scalajs.core.tools.io._
-import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker}
+import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker, Semantics}
import org.scalajs.core.tools.logging.ScalaConsoleLogger
import org.scalajs.jsenv.ConsoleJSConsole
import org.scalajs.jsenv.nodejs._
@@ -13,7 +13,11 @@ 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 = {
- val config = StandardLinker.Config().withOptimizer(fullOpt)
+ val semantics = fullOpt match {
+ case true => Semantics.Defaults.optimized
+ case false => Semantics.Defaults
+ }
+ val config = StandardLinker.Config().withOptimizer(fullOpt).withClosureCompilerIfAvailable(fullOpt).withSemantics(semantics)
val linker = StandardLinker(config)
val cache = new IRFileCache().newCache
val sourceIRs = sources.map(FileVirtualScalaJSIRFile)