summaryrefslogtreecommitdiff
path: root/examples/scala-js/javalanglib/src/main/scala/java/lang/Float.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/javalanglib/src/main/scala/java/lang/Float.scala')
-rw-r--r--examples/scala-js/javalanglib/src/main/scala/java/lang/Float.scala96
1 files changed, 0 insertions, 96 deletions
diff --git a/examples/scala-js/javalanglib/src/main/scala/java/lang/Float.scala b/examples/scala-js/javalanglib/src/main/scala/java/lang/Float.scala
deleted file mode 100644
index 70cb33e..0000000
--- a/examples/scala-js/javalanglib/src/main/scala/java/lang/Float.scala
+++ /dev/null
@@ -1,96 +0,0 @@
-package java.lang
-
-/* This is a hijacked class. Its instances are primitive numbers.
- * Constructors are not emitted.
- */
-final class Float private () extends Number with Comparable[Float] {
-
- def this(value: scala.Float) = this()
- def this(s: String) = this()
-
- @inline def floatValue(): scala.Float =
- this.asInstanceOf[scala.Float]
-
- @inline override def byteValue(): scala.Byte = floatValue.toByte
- @inline override def shortValue(): scala.Short = floatValue.toShort
- @inline def intValue(): scala.Int = floatValue.toInt
- @inline def longValue(): scala.Long = floatValue.toLong
- @inline def doubleValue(): scala.Double = floatValue.toDouble
-
- override def equals(that: Any): scala.Boolean = that match {
- case that: Double => // yes, Double
- val a = doubleValue
- val b = that.doubleValue
- (a == b) || (Double.isNaN(a) && Double.isNaN(b))
- case _ =>
- false
- }
-
- // Uses the hashCode of Doubles. See Bits.numberHashCode for the rationale.
- @inline override def hashCode(): Int =
- scala.scalajs.runtime.Bits.numberHashCode(doubleValue)
-
- @inline override def compareTo(that: Float): Int =
- Float.compare(floatValue, that.floatValue)
-
- @inline override def toString(): String =
- Float.toString(floatValue)
-
- @inline def isNaN(): scala.Boolean =
- Float.isNaN(floatValue)
-
- @inline def isInfinite(): scala.Boolean =
- Float.isInfinite(floatValue)
-
-}
-
-object Float {
- final val TYPE = classOf[scala.Float]
- final val POSITIVE_INFINITY = 1.0f / 0.0f
- final val NEGATIVE_INFINITY = 1.0f / -0.0f
- final val NaN = 0.0f / 0.0f
- final val MAX_VALUE = scala.Float.MaxValue
- final val MIN_VALUE = scala.Float.MinPositiveValue
- final val MAX_EXPONENT = 127
- final val MIN_EXPONENT = -126
- final val SIZE = 32
-
- @inline def valueOf(floatValue: scala.Float): Float = new Float(floatValue)
-
- @inline def valueOf(s: String): Float = valueOf(parseFloat(s))
-
- @inline def parseFloat(s: String): scala.Float =
- Double.parseDouble(s).toFloat
-
- @inline def toString(f: scala.Float): String =
- "" + f
-
- def compare(a: scala.Float, b: scala.Float): scala.Int = {
- // NaN must equal itself, and be greater than anything else
- if (isNaN(a)) {
- if (isNaN(b)) 0
- else 1
- } else if (isNaN(b)) {
- -1
- } else {
- if (a == b) 0
- else if (a < b) -1
- else 1
- }
- }
-
- @inline protected def equals(a: scala.Float, b: scala.Float): scala.Boolean =
- a == b || (isNaN(a) && isNaN(b))
-
- @inline def isNaN(v: scala.Float): scala.Boolean =
- v != v
-
- @inline def isInfinite(v: scala.Float): scala.Boolean =
- v == POSITIVE_INFINITY || v == NEGATIVE_INFINITY
-
- @inline def intBitsToFloat(bits: scala.Int): scala.Float =
- scala.scalajs.runtime.Bits.intBitsToFloat(bits)
-
- @inline def floatToIntBits(value: scala.Float): scala.Int =
- scala.scalajs.runtime.Bits.floatToIntBits(value)
-}