summaryrefslogtreecommitdiff
path: root/examples/scala-js/ir/src/main/scala/scala/scalajs/ir/Definitions.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/ir/src/main/scala/scala/scalajs/ir/Definitions.scala')
-rw-r--r--examples/scala-js/ir/src/main/scala/scala/scalajs/ir/Definitions.scala144
1 files changed, 0 insertions, 144 deletions
diff --git a/examples/scala-js/ir/src/main/scala/scala/scalajs/ir/Definitions.scala b/examples/scala-js/ir/src/main/scala/scala/scalajs/ir/Definitions.scala
deleted file mode 100644
index 0762602..0000000
--- a/examples/scala-js/ir/src/main/scala/scala/scalajs/ir/Definitions.scala
+++ /dev/null
@@ -1,144 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ __ ____ Scala.js IR **
-** / __/ __// _ | / / / _ | __ / // __/ (c) 2014, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
-** /____/\___/_/ |_/____/_/ | |__/ /____/ **
-** |/____/ **
-\* */
-
-
-package scala.scalajs.ir
-
-object Definitions {
- val ObjectClass = "O"
- val ClassClass = "jl_Class"
-
- val StringClass = "T"
-
- val PrimitiveClasses = Set("V", "Z", "C", "B", "S", "I", "J", "F", "D")
-
- def isPrimitiveClass(encodedName: String): Boolean =
- PrimitiveClasses.contains(encodedName)
-
- val BoxedUnitClass = "sr_BoxedUnit"
- val BoxedBooleanClass = "jl_Boolean"
- val BoxedCharacterClass = "jl_Character"
- val BoxedByteClass = "jl_Byte"
- val BoxedShortClass = "jl_Short"
- val BoxedIntegerClass = "jl_Integer"
- val BoxedLongClass = "jl_Long"
- val BoxedFloatClass = "jl_Float"
- val BoxedDoubleClass = "jl_Double"
-
- val CharSequenceClass = "jl_CharSequence"
- val SerializableClass = "Ljava_io_Serializable"
- val ComparableClass = "jl_Comparable"
- val NumberClass = "jl_Number"
-
- val HijackedBoxedClasses = Set(
- BoxedUnitClass, BoxedBooleanClass, BoxedByteClass, BoxedShortClass,
- BoxedIntegerClass, BoxedLongClass, BoxedFloatClass, BoxedDoubleClass)
- val HijackedClasses =
- HijackedBoxedClasses + StringClass
-
- val AncestorsOfStringClass = Set(
- CharSequenceClass, ComparableClass, SerializableClass)
- val AncestorsOfHijackedNumberClasses = Set(
- NumberClass, ComparableClass, SerializableClass)
- val AncestorsOfBoxedBooleanClass = Set(
- ComparableClass, SerializableClass)
-
- val AncestorsOfHijackedClasses =
- AncestorsOfStringClass ++ AncestorsOfHijackedNumberClasses ++
- AncestorsOfBoxedBooleanClass
-
- val RuntimeNullClass = "sr_Null$"
- val RuntimeNothingClass = "sr_Nothing$"
-
- val ThrowableClass = "jl_Throwable"
-
- /** Encodes a class name. */
- def encodeClassName(fullName: String): String = {
- val base = fullName.replace("_", "$und").replace(".", "_")
- val encoded = compressedClasses.getOrElse(base, {
- compressedPrefixes collectFirst {
- case (prefix, compressed) if base.startsWith(prefix) =>
- compressed + base.substring(prefix.length)
- } getOrElse {
- "L"+base
- }
- })
- if (Trees.isKeyword(encoded) || encoded.charAt(0).isDigit ||
- encoded.charAt(0) == '$') {
- "$" + encoded
- } else encoded
- }
-
- // !!! Duplicate logic: this code must be in sync with runtime.StackTrace
-
- /** Decodes a class name encoded with [[encodeClassName]]. */
- def decodeClassName(encodedName: String): String = {
- val encoded =
- if (encodedName.charAt(0) == '$') encodedName.substring(1)
- else encodedName
- val base = decompressedClasses.getOrElse(encoded, {
- decompressedPrefixes collectFirst {
- case (prefix, decompressed) if encoded.startsWith(prefix) =>
- decompressed + encoded.substring(prefix.length)
- } getOrElse {
- assert(!encoded.isEmpty && encoded.charAt(0) == 'L',
- s"Cannot decode invalid encoded name '$encodedName'")
- encoded.substring(1)
- }
- })
- base.replace("_", ".").replace("$und", "_")
- }
-
- private val compressedClasses: Map[String, String] = Map(
- "java_lang_Object" -> "O",
- "java_lang_String" -> "T",
- "scala_Unit" -> "V",
- "scala_Boolean" -> "Z",
- "scala_Char" -> "C",
- "scala_Byte" -> "B",
- "scala_Short" -> "S",
- "scala_Int" -> "I",
- "scala_Long" -> "J",
- "scala_Float" -> "F",
- "scala_Double" -> "D"
- ) ++ (
- for (index <- 2 to 22)
- yield s"scala_Tuple$index" -> ("T"+index)
- ) ++ (
- for (index <- 0 to 22)
- yield s"scala_Function$index" -> ("F"+index)
- )
-
- private val decompressedClasses: Map[String, String] =
- compressedClasses map { case (a, b) => (b, a) }
-
- private val compressedPrefixes = Seq(
- "scala_scalajs_runtime_" -> "sjsr_",
- "scala_scalajs_" -> "sjs_",
- "scala_collection_immutable_" -> "sci_",
- "scala_collection_mutable_" -> "scm_",
- "scala_collection_generic_" -> "scg_",
- "scala_collection_" -> "sc_",
- "scala_runtime_" -> "sr_",
- "scala_" -> "s_",
- "java_lang_" -> "jl_",
- "java_util_" -> "ju_"
- )
-
- private val decompressedPrefixes: Seq[(String, String)] =
- compressedPrefixes map { case (a, b) => (b, a) }
-
- /* Common predicates on encoded names */
-
- def isConstructorName(name: String): Boolean =
- name.startsWith("init___")
-
- def isReflProxyName(name: String): Boolean =
- name.endsWith("__") && !isConstructorName(name)
-
-}