144 lines
3.2 KiB
GDScript
144 lines
3.2 KiB
GDScript
class_name haxe__CallStack_CallStack_Impl_
|
|
|
|
func _init() -> void:
|
|
pass
|
|
|
|
static func callStack() -> Array[Variant]:
|
|
return haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.callStack())
|
|
|
|
static func exceptionStack(fullStack: bool = false) -> Array[Variant]:
|
|
var eStack: Array[Variant] = haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.exceptionStack())
|
|
var tempCallStack
|
|
|
|
if (fullStack):
|
|
tempCallStack = eStack
|
|
else:
|
|
tempCallStack = haxe__CallStack_CallStack_Impl_.subtract(eStack, haxe__CallStack_CallStack_Impl_.callStack())
|
|
|
|
var this1: Array[Variant] = tempCallStack
|
|
|
|
return this1
|
|
|
|
static func subtract(this1: Array[Variant], stack: Array[Variant]) -> Array[Variant]:
|
|
var startIndex: int = -1
|
|
var i: int = -1
|
|
|
|
while true:
|
|
var tempLeft
|
|
i += 1
|
|
tempLeft = i
|
|
if !(tempLeft < this1.size()):
|
|
break
|
|
var _g: int = 0
|
|
var _g1: int = stack.size()
|
|
while (_g < _g1):
|
|
var tempNumber
|
|
_g += 1
|
|
tempNumber = _g - 1
|
|
var j: int = tempNumber
|
|
if (haxe__CallStack_CallStack_Impl_.equalItems(this1[i], stack[j])):
|
|
if (startIndex < 0):
|
|
startIndex = i
|
|
i += 1
|
|
if (i >= this1.size()):
|
|
break
|
|
else:
|
|
startIndex = -1
|
|
if (startIndex >= 0):
|
|
break
|
|
|
|
var tempResult
|
|
|
|
if (startIndex >= 0):
|
|
tempResult = this1.slice(0, startIndex)
|
|
else:
|
|
tempResult = this1
|
|
|
|
return tempResult
|
|
|
|
static func equalItems(item1, item2) -> bool:
|
|
var tempResult
|
|
|
|
if (item1 == null):
|
|
if (item2 == null):
|
|
tempResult = true
|
|
else:
|
|
tempResult = false
|
|
else:
|
|
match (item1._index):
|
|
0:
|
|
if (item2 == null):
|
|
tempResult = false
|
|
else:
|
|
if (item2._index == 0):
|
|
tempResult = true
|
|
else:
|
|
tempResult = false
|
|
1:
|
|
var _g: String = item1.m
|
|
if (item2 == null):
|
|
tempResult = false
|
|
else:
|
|
if (item2._index == 1):
|
|
var _g1: String = item2.m
|
|
var m2: String = _g1
|
|
var m1: String = _g
|
|
tempResult = m1 == m2
|
|
else:
|
|
tempResult = false
|
|
2:
|
|
var _g = item1.s
|
|
var _g1: String = item1.file
|
|
var _g2: int = item1.line
|
|
var _g3 = item1.column
|
|
if (item2 == null):
|
|
tempResult = false
|
|
else:
|
|
if (item2._index == 2):
|
|
var _g4 = item2.s
|
|
var _g5: String = item2.file
|
|
var _g6: int = item2.line
|
|
var _g7 = item2.column
|
|
var item3 = _g4
|
|
var file2: String = _g5
|
|
var line2: int = _g6
|
|
var col2 = _g7
|
|
var col1 = _g3
|
|
var line1: int = _g2
|
|
var file1: String = _g1
|
|
var item4 = _g
|
|
tempResult = file1 == file2 && line1 == line2 && col1 == col2 && haxe__CallStack_CallStack_Impl_.equalItems(item4, item3)
|
|
else:
|
|
tempResult = false
|
|
3:
|
|
var _g = item1.classname
|
|
var _g1: String = item1.method
|
|
if (item2 == null):
|
|
tempResult = false
|
|
else:
|
|
if (item2._index == 3):
|
|
var _g2 = item2.classname
|
|
var _g3: String = item2.method
|
|
var class2 = _g2
|
|
var method2: String = _g3
|
|
var method1: String = _g1
|
|
var class1 = _g
|
|
tempResult = class1 == class2 && method1 == method2
|
|
else:
|
|
tempResult = false
|
|
4:
|
|
var _g = item1.v
|
|
if (item2 == null):
|
|
tempResult = false
|
|
else:
|
|
if (item2._index == 4):
|
|
var _g1 = item2.v
|
|
var v2 = _g1
|
|
var v1 = _g
|
|
tempResult = v1 == v2
|
|
else:
|
|
tempResult = false
|
|
|
|
return tempResult
|
|
|