Branch Coverage

lib/List/Keywords.xs
Criterion Covered Total %
branch 77 114 67.5


line true false branch
68 51 0 OP *blockstart = LINKLIST(block);
76 51 0 if(startop->op_type != OP_LIST)
94 51 0 OP *whilestart = LINKLIST(startop);
129 9 200025 if(PL_stack_base + TOPMARK == SP) {
133 0 9 XPUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
5 4 XPUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
1 4 XPUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
140 0 200025 PUSHMARK(PL_stack_sp); /* current src item */
146 17 200008 if(SvPADTMP(src)) {
152 4 200021 if(targ) {
175 33 10200130 SV *targsv = targ ? PAD_SVl(targ) : DEFSV;
10200130 0 SV *targsv = targ ? PAD_SVl(targ) : DEFSV;
177 0 10200163 bool ret = SvTRUE_NN(sv);
0 10200163 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
10200163 0 bool ret = SvTRUE_NN(sv);
10200163 0 bool ret = SvTRUE_NN(sv);
10200163 0 bool ret = SvTRUE_NN(sv);
200059 10000104 bool ret = SvTRUE_NN(sv);
0 200059 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
0 0 bool ret = SvTRUE_NN(sv);
181 53 10200110 if((mode & FIRST_STOP_ON_FALSE) ? !ret : ret) {
200016 10000147 if((mode & FIRST_STOP_ON_FALSE) ? !ret : ret) {
190 200012 4 SV *ret = (mode & FIRST_RET_NO ) ? &PL_sv_no :
191 200006 6 (mode & FIRST_RET_YES) ? &PL_sv_yes :
200 9 10000138 if(UNLIKELY(PL_stack_base + *PL_markstack_ptr > SP)) {
205 6 3 PUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
1 5 PUSHs((mode & FIRST_EMPTY_NO ) ? &PL_sv_no :
213 132 10000006 if(SvPADTMP(src)) {
219 29 10000109 if(targ)
235 5 36 if(has_optvar) {
242 41 0 *out = build_blocklist(aTHX_ varix, block, list,
299 2 7 if(PL_stack_base + TOPMARK == SP) {
302 2 0 if(GIMME_V == G_SCALAR)
1 1 if(GIMME_V == G_SCALAR)
303 0 1 XPUSHs(&PL_sv_undef);
307 2 5 if(PL_stack_base + TOPMARK + 1 == SP) {
315 3 2 if(mode == REDUCE_REDUCTIONS)
316 0 3 PUSHMARK(PL_stack_sp);
317 0 5 PUSHMARK(PL_stack_sp);
332 3 2 if(mode == REDUCE_REDUCTIONS)
335 5 0 if(SvPADTMP(sv)) {
347 5 0 if(SvPADTMP(sv)) {
366 11 7 if(mode == REDUCE_REDUCTIONS)
367 6 5 PL_stack_base[PL_markstack_ptr[-1]++] = SvPADTMP(sv) ? sv_mortalcopy(sv) : sv;
371 5 13 if(UNLIKELY(PL_stack_base + *PL_markstack_ptr > SP)) {
372 0 5 U8 gimme = GIMME_V;
375 3 2 if(mode == REDUCE_REDUCTIONS) {
380 1 2 if(gimme == G_SCALAR) {
384 2 0 else if(gimme == G_ARRAY)
404 13 0 if(SvPADTMP(sv)) {
426 10 0 *out = build_blocklist(aTHX_ 0, args[0]->op, args[1]->op,