summaryrefslogtreecommitdiff
path: root/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/corelib/CoreJSLibs.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/corelib/CoreJSLibs.scala')
-rw-r--r--examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/corelib/CoreJSLibs.scala113
1 files changed, 0 insertions, 113 deletions
diff --git a/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/corelib/CoreJSLibs.scala b/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/corelib/CoreJSLibs.scala
deleted file mode 100644
index ecbea1f..0000000
--- a/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/corelib/CoreJSLibs.scala
+++ /dev/null
@@ -1,113 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ __ ____ Scala.js tools **
-** / __/ __// _ | / / / _ | __ / // __/ (c) 2013-2014, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
-** /____/\___/_/ |_/____/_/ | |__/ /____/ **
-** |/____/ **
-\* */
-
-
-package scala.scalajs.tools.corelib
-
-import java.net.URI
-
-import scala.scalajs.ir.ScalaJSVersions
-import scala.scalajs.tools.io._
-
-import scala.scalajs.tools.sem._
-
-import scala.collection.immutable.Seq
-import scala.collection.mutable
-
-object CoreJSLibs {
-
- private val cachedLibBySemantics =
- mutable.HashMap.empty[Semantics, VirtualJSFile]
-
- private val ScalaJSEnvLines =
- ScalaJSEnvHolder.scalajsenv.split("\n|\r\n?")
-
- private val gitHubBaseURI =
- new URI("https://raw.githubusercontent.com/scala-js/scala-js/")
-
- def libs(semantics: Semantics): Seq[VirtualJSFile] = synchronized {
- Seq(cachedLibBySemantics.getOrElseUpdate(semantics, makeLib(semantics)))
- }
-
- private def makeLib(semantics: Semantics): VirtualJSFile = {
- new ScalaJSEnvVirtualJSFile(makeContent(semantics))
- }
-
- private def makeContent(semantics: Semantics): String = {
- // This is a basic sort-of-C-style preprocessor
-
- def getOption(name: String): String = name match {
- case "asInstanceOfs" =>
- semantics.asInstanceOfs.toString()
- case "floats" =>
- if (semantics.strictFloats) "Strict"
- else "Loose"
- }
-
- var skipping = false
- var skipDepth = 0
- val lines = for (line <- ScalaJSEnvLines) yield {
- val includeThisLine = if (skipping) {
- if (line == "//!else" && skipDepth == 1) {
- skipping = false
- skipDepth = 0
- } else if (line == "//!endif") {
- skipDepth -= 1
- if (skipDepth == 0)
- skipping = false
- } else if (line.startsWith("//!if ")) {
- skipDepth += 1
- }
- false
- } else {
- if (line.startsWith("//!")) {
- if (line.startsWith("//!if ")) {
- val Array(_, option, op, value) = line.split(" ")
- val optionValue = getOption(option)
- val success = op match {
- case "==" => optionValue == value
- case "!=" => optionValue != value
- }
- if (!success) {
- skipping = true
- skipDepth = 1
- }
- } else if (line == "//!else") {
- skipping = true
- skipDepth = 1
- } else if (line == "//!endif") {
- // nothing to do
- } else {
- throw new MatchError(line)
- }
- false
- } else {
- true
- }
- }
- if (includeThisLine) line
- else "" // blank line preserves line numbers in source maps
- }
-
- lines.mkString("", "\n", "\n")
- }
-
- private class ScalaJSEnvVirtualJSFile(override val content: String) extends VirtualJSFile {
- override def path: String = "scalajsenv.js"
- override def version: Option[String] = Some("")
- override def exists: Boolean = true
-
- override def toURI: URI = {
- if (!ScalaJSVersions.currentIsSnapshot)
- gitHubBaseURI.resolve(s"v${ScalaJSVersions.current}/tools/$path")
- else
- super.toURI
- }
- }
-
-}