summaryrefslogtreecommitdiff
path: root/examples/scala-js/javalanglib/src/main/scala/java/lang/Integer.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/javalanglib/src/main/scala/java/lang/Integer.scala')
-rw-r--r--examples/scala-js/javalanglib/src/main/scala/java/lang/Integer.scala129
1 files changed, 0 insertions, 129 deletions
diff --git a/examples/scala-js/javalanglib/src/main/scala/java/lang/Integer.scala b/examples/scala-js/javalanglib/src/main/scala/java/lang/Integer.scala
deleted file mode 100644
index a002fb7..0000000
--- a/examples/scala-js/javalanglib/src/main/scala/java/lang/Integer.scala
+++ /dev/null
@@ -1,129 +0,0 @@
-package java.lang
-
-import scala.scalajs.js
-
-/* This is a hijacked class. Its instances are primitive numbers.
- * Constructors are not emitted.
- */
-final class Integer private () extends Number with Comparable[Integer] {
-
- def this(value: scala.Int) = this()
- def this(s: String) = this()
-
- @inline def intValue(): scala.Int =
- this.asInstanceOf[scala.Int]
-
- @inline override def byteValue(): scala.Byte = intValue.toByte
- @inline override def shortValue(): scala.Short = intValue.toShort
- @inline def longValue(): scala.Long = intValue.toLong
- @inline def floatValue(): scala.Float = intValue.toFloat
- @inline def doubleValue(): scala.Double = intValue.toDouble
-
- @inline override def equals(that: Any): scala.Boolean =
- this eq that.asInstanceOf[AnyRef]
-
- @inline override def hashCode(): Int =
- intValue
-
- @inline override def compareTo(that: Integer): Int =
- Integer.compare(intValue, that.intValue)
-
- @inline override def toString(): String =
- Integer.toString(intValue)
-
-}
-
-object Integer {
- final val TYPE = classOf[scala.Int]
- final val MIN_VALUE = -2147483648
- final val MAX_VALUE = 2147483647
- final val SIZE = 32
-
- @inline def valueOf(intValue: scala.Int): Integer = new Integer(intValue)
- @inline def valueOf(s: String): Integer = valueOf(parseInt(s))
-
- @inline def valueOf(s: String, radix: Int): Integer =
- valueOf(parseInt(s, radix))
-
- @inline def parseInt(s: String): scala.Int = parseInt(s, 10)
-
- def parseInt(s: String, radix: scala.Int): scala.Int = {
- def fail = throw new NumberFormatException(s"""For input string: "$s"""")
-
- if (s == null || s.size == 0 ||
- radix < Character.MIN_RADIX ||
- radix > Character.MAX_RADIX)
- fail
- else {
- var i = if (s(0) == '-' || s(0) == '+') 1 else 0
- // JavaDoc says: We need at least one digit
- if (s.size <= i) fail
- else {
- // Check each character for validity
- while (i < s.size) {
- if (Character.digit(s(i), radix) < 0) fail
- i += 1
- }
- val res = js.parseInt(s, radix)
-
- if (js.isNaN(res) || res > MAX_VALUE || res < MIN_VALUE)
- fail
- else
- res.toInt
- }
- }
- }
-
- @inline def toString(i: scala.Int): String =
- "" + i
-
- @inline def compare(x: scala.Int, y: scala.Int): scala.Int =
- if (x == y) 0 else if (x < y) -1 else 1
-
- def bitCount(i: scala.Int): scala.Int = {
- // See http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel
- // The implicit casts to 32-bit ints due to binary ops make this work in JS too
- val t1 = i - ((i >> 1) & 0x55555555)
- val t2 = (t1 & 0x33333333) + ((t1 >> 2) & 0x33333333)
- ((t2 + (t2 >> 4) & 0xF0F0F0F) * 0x1010101) >> 24
- }
-
- def reverseBytes(i: scala.Int): scala.Int = {
- val byte3 = i >>> 24
- val byte2 = (i >>> 8) & 0xFF00
- val byte1 = (i << 8) & 0xFF0000
- val byte0 = (i << 24)
- byte0 | byte1 | byte2 | byte3
- }
-
- def rotateLeft(i: scala.Int, distance: scala.Int): scala.Int =
- (i << distance) | (i >>> -distance)
-
- def rotateRight(i: scala.Int, distance: scala.Int): scala.Int =
- (i >>> distance) | (i << -distance)
-
- @inline def signum(i: scala.Int): scala.Int =
- if (i == 0) 0 else if (i < 0) -1 else 1
-
- def numberOfLeadingZeros(i: scala.Int): scala.Int = {
- // See http://aggregate.org/MAGIC/#Leading%20Zero%20Count
- var x = i
- x |= (x >>> 1)
- x |= (x >>> 2)
- x |= (x >>> 4)
- x |= (x >>> 8)
- x |= (x >>> 16)
- 32 - bitCount(x)
- }
-
- def numberOfTrailingZeros(i: scala.Int): scala.Int =
- // See http://aggregate.org/MAGIC/#Trailing%20Zero%20Count
- bitCount((i & -i) - 1)
-
- def toBinaryString(i: scala.Int): String = toStringBase(i, 2)
- def toHexString(i: scala.Int): String = toStringBase(i, 16)
- def toOctalString(i: scala.Int): String = toStringBase(i, 8)
-
- @inline private[this] def toStringBase(i: scala.Int, base: scala.Int): String =
- ((i: js.prim.Number) >>> 0).toString(base)
-}