25 lines
609 B
Plaintext
25 lines
609 B
Plaintext
// Define our own trace method
|
|
define trace => {
|
|
local(gb) = givenblock
|
|
|
|
// Set a depth counter
|
|
var(::_tracedepth)->isnota(::integer) ? $_tracedepth = 0
|
|
handle => {$_tracedepth--}
|
|
|
|
// Only output when supplied a capture
|
|
#gb ? stdoutnl(
|
|
// Indent
|
|
('\t' * $_tracedepth++) +
|
|
|
|
// Type + Method
|
|
#gb->self->type + '.' + #gb->calledname +
|
|
|
|
// Call site file
|
|
': ' + #gb->home->callsite_file +
|
|
|
|
// Line number and column number
|
|
' (line '+#gb->home->callsite_line + ', col ' + #gb->home->callsite_col +')'
|
|
)
|
|
return #gb()
|
|
}
|