$a[$prefix.'this'
] =
new CutStub($c->
getThis());
} $function =
$c->
getFunction();
$frame =
[ 'class' =>
$function->class ?? null,
'type' =>
isset($function->class
) ?
($function->
isStatic() ? '::' : '->'
) : null,
'function' =>
$function->name,
'file' =>
$c->
getExecutingFile(),
'line' =>
$c->
getExecutingLine(),
];
if ($trace =
$c->
getTrace(\DEBUG_BACKTRACE_IGNORE_ARGS
)) { $function =
new \
ReflectionGenerator($c->
getExecutingGenerator());
array_unshift($trace,
[ 'function' => 'yield',
'file' =>
$function->
getExecutingFile(),
'line' =>
$function->
getExecutingLine(),
]);
$trace[] =
$frame;
$a[$prefix.'trace'
] =
new TraceStub($trace, false, 0, -1, -1
);
} else { $function =
new FrameStub($frame, false, true
);
$function = ExceptionCaster::
castFrameStub($function,
[],
$function, true
);
$a[$prefix.'executing'
] =
$function[$prefix.'src'
];
}