Branch Coverage

OptionalChain.xs
Criterion Covered Total %
branch 24 30 80.0


line true false branch
9 7 34 if (!SvOK(obj))
12 20 14 if (sv_isobject(obj)) {
15 17 3 if (gv && isGV(gv) && GvCV(gv)) {
17 0 if (gv && isGV(gv) && GvCV(gv)) {
17 0 if (gv && isGV(gv) && GvCV(gv)) {
21 0 17 PUSHMARK(SP);
22 0 17 XPUSHs(obj); /* the invocant */
26 17 0 out = newSVsv(count ? POPs : &PL_sv_undef); /* copy out */
28 8 9 FREETMPS;
35 16 1 if (SvROK(obj)) {
37 9 7 if (SvTYPE(rv) == SVt_PVHV) {
39 7 2 return he ? newSVsv(HeVAL(he)) : newSV(0);
41 6 1 if (SvTYPE(rv) == SVt_PVAV) {
43 5 1 return (ele && *ele) ? newSVsv(*ele) : newSV(0);
5 0 return (ele && *ele) ? newSVsv(*ele) : newSV(0);