blob: cc87aecf9f78ee6c086d7a3394e1756d3412a790 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
package java.lang
import scala.scalajs.js
final class StackTraceElement(declaringClass: String, methodName: String,
fileName: String, lineNumber: Int) extends AnyRef with java.io.Serializable {
def getFileName(): String = fileName
def getLineNumber(): Int = lineNumber
def getClassName(): String = declaringClass
def getMethodName(): String = methodName
def isNativeMethod(): scala.Boolean = false
override def equals(that: Any): scala.Boolean = that match {
case that: StackTraceElement =>
(getFileName == that.getFileName) &&
(getLineNumber == that.getLineNumber) &&
(getClassName == that.getClassName) &&
(getMethodName == that.getMethodName)
case _ =>
false
}
override def toString(): String = {
var result = ""
if (declaringClass != "<jscode>")
result += declaringClass + "."
result += methodName
if (fileName eq null) {
if (isNativeMethod)
result += "(Native Method)"
else
result += "(Unknown Source)"
} else {
result += s"($fileName"
if (lineNumber >= 0) {
result += s":$lineNumber"
if (columnNumber >= 0)
result += s":$columnNumber"
}
result += ")"
}
result
}
override def hashCode(): Int = {
declaringClass.hashCode() ^ methodName.hashCode()
}
private def columnNumber: Int = {
val rawNum = this.asInstanceOf[js.Dynamic].columnNumber
if (!(!rawNum)) rawNum.asInstanceOf[Int]
else -1
}
}
|