See https://github.com/scala-js/scala-js/pull/2590#issuecomment-246680527
Checksizes: Scala version: 2.12.0-RC1
Reversi preopt size = 594344 (expected 528000)
Reversi opt size = 148876 (expected 124000)
Reversi preopt gzip size = 77217 (expected 67000)
Reversi opt gzip size = 35696 (expected 30000)
Here is the culprit: https://github.com/scala/scala/commit/30876fe2dd8cbe657a6cad6b11bbc34f10c29b36
It introduces a call toString.split(Char), which transitively brings in thejava.util.regex.*implementation. SincestringPrefixis called byMostCollection.toString(), this means that every single Scala.js codebase is paying the tax ofjava.util.regex.*.
Oh, and, in the same commit, the calls to Character.isDigit and isUpperCase bring in the Unicode database :scream:
Really glad there are at least the appropriate emoticons for this situation.
This is being addressed upstream: https://github.com/scala/scala/pull/5400
Most helpful comment
Really glad there are at least the appropriate emoticons for this situation.