diff options
author | Dennis4b <Dennis4b@users.noreply.github.com> | 2018-03-06 05:55:58 +0100 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-05 20:55:58 -0800 |
commit | d4a00892f9c9c43e3d0f6906482b27e04d79d8dc (patch) | |
tree | d419f57ef27253c949ff3c7d37550764b9e6bb11 /scalajslib | |
parent | a8885fe610eb48c11fc48ca47bfa1f2a295d5bc2 (diff) | |
download | mill-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.scala | 8 | ||||
-rw-r--r-- | scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala | 8 |
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) |