| line |
true |
false |
branch |
|
46
|
23 |
0 |
for (cxix = cxstack_ix; cxix; cxix--) {
|
|
47
|
17 |
6 |
if(CxTYPE(&cxstack[cxix]) == CXt_SUB)
|
|
50
|
9 |
8 |
if(CxTYPE(&cxstack[cxix]) == CXt_EVAL && CxTRYBLOCK(&cxstack[cxix])) {
|
|
58
|
8 |
1 |
if(retop->op_type == OP_CUSTOM && retop->op_ppaddr == &pp_catch &&
|
|
|
8 |
0 |
if(retop->op_type == OP_CUSTOM && retop->op_ppaddr == &pp_catch &&
|
|
59
|
8 |
0 |
(leave = cLOGOPx(retop)->op_first) && leave->op_type == OP_LEAVETRY &&
|
|
|
8 |
0 |
(leave = cLOGOPx(retop)->op_first) && leave->op_type == OP_LEAVETRY &&
|
|
60
|
8 |
0 |
(enter = cLOGOPx(leave)->op_first) && enter->op_type == OP_ENTERTRY &&
|
|
|
8 |
0 |
(enter = cLOGOPx(leave)->op_first) && enter->op_type == OP_ENTERTRY &&
|
|
61
|
8 |
0 |
enter->op_ppaddr == &pp_entertrycatch) {
|
|
68
|
0 |
7 |
if(!cxix)
|
|
84
|
5 |
0 |
dMARK;
|
|
85
|
5 |
0 |
retval = (MARK == SP) ? &PL_sv_undef : TOPs;
|
|
101
|
0 |
1 |
Copy(retvals, AvARRAY(retav), retcount, SV *);
|
|
102
|
3 |
1 |
for(i = 0; i < retcount; i++)
|
|
103
|
3 |
0 |
SvREFCNT_inc(retvals[i]);
|
|
114
|
0 |
1 |
PUSHMARK(SP);
|
|
120
|
0 |
5 |
PUSHMARK(SP);
|
|
121
|
0 |
5 |
XPUSHs(retval);
|
|
128
|
0 |
1 |
PUSHMARK(SP);
|
|
131
|
1 |
0 |
EXTEND(SP, retcount);
|
|
|
0 |
1 |
EXTEND(SP, retcount);
|
|
132
|
0 |
1 |
Copy(AvARRAY(retav), SP+1, retcount, SV *);
|
|
153
|
0 |
8 |
PUSHMARK(SP);
|
|
189
|
1 |
13 |
if(op->op_next == old)
|
|
192
|
0 |
14 |
switch(OP_CLASS(op)) {
|
|
194
|
1 |
0 |
if(cLOGOPx(op)->op_other == old)
|
|
199
|
0 |
2 |
if(cLISTOPx(op)->op_last == old)
|
|
204
|
6 |
8 |
if(op->op_flags & OPf_KIDS) {
|
|
206
|
6 |
6 |
for(kid = cUNOPx(op)->op_first; kid; kid = OpSIBLING(kid))
|
|
|
12 |
6 |
for(kid = cUNOPx(op)->op_first; kid; kid = OpSIBLING(kid))
|
|
229
|
1 |
1 |
OP *parent = OpHAS_SIBLING(op) ? NULL : op->op_sibparent;
|
|
237
|
1 |
1 |
if(parent)
|
|
258
|
111 |
146 |
if(op->op_flags & OPf_KIDS) {
|
|
260
|
221 |
111 |
for(kid = cUNOPx(op)->op_first; kid; kid = next) {
|
|
262
|
110 |
111 |
next = OpSIBLING(kid);
|
|
266
|
2 |
219 |
if(newkid != kid) {
|
|
269
|
2 |
0 |
if(prev) {
|
|
275
|
1 |
1 |
if(next)
|
|
299
|
33 |
0 |
if(SvROK(ERRSV) || SvTRUE(ERRSV))
|
|
|
29 |
4 |
if(SvROK(ERRSV) || SvTRUE(ERRSV))
|
|
|
29 |
0 |
if(SvROK(ERRSV) || SvTRUE(ERRSV))
|
|
|
18 |
11 |
if(SvROK(ERRSV) || SvTRUE(ERRSV))
|
|
338
|
38 |
0 |
logop->op_other = LINKLIST(other);
|
|
340
|
38 |
0 |
logop->op_next = LINKLIST(first);
|
|
397
|
47 |
0 |
bool require_catch = hints && hv_fetchs(hints, "Syntax::Keyword::Try/require_catch", 0);
|
|
|
47 |
0 |
bool require_catch = hints && hv_fetchs(hints, "Syntax::Keyword::Try/require_catch", 0);
|
|
398
|
46 |
1 |
bool require_var = hints && hv_fetchs(hints, "Syntax::Keyword::Try/require_var", 0);
|
|
404
|
41 |
46 |
while(ncatches--) {
|
|
406
|
37 |
4 |
PADOFFSET catchvar = has_catchvar ? args[argi++]->padix : 0;
|
|
407
|
37 |
4 |
int catchtype = has_catchvar ? args[argi++]->i : -1;
|
|
438
|
1 |
0 |
if(regexp->op_type != OP_MATCH || cPMOPx(regexp)->op_first)
|
|
|
0 |
1 |
if(regexp->op_type != OP_MATCH || cPMOPx(regexp)->op_first)
|
|
457
|
3 |
38 |
if(condop && !warned &&
|
|
|
3 |
0 |
if(condop && !warned &&
|
|
458
|
0 |
3 |
(!hints || !hv_fetchs(hints, "Syntax::Keyword::Try/experimental(typed)", 0))) {
|
|
467
|
1 |
40 |
if(require_var && !has_catchvar)
|
|
470
|
0 |
40 |
if(catch)
|
|
474
|
37 |
3 |
if(catchvar) {
|
|
480
|
3 |
37 |
if(condop) {
|
|
481
|
2 |
1 |
if(!condcatch)
|
|
488
|
34 |
3 |
else if(assignop) {
|
|
496
|
2 |
44 |
if(condcatch) {
|
|
499
|
1 |
1 |
if(!catch)
|
|
505
|
0 |
2 |
for(i = AvFILL(condcatch)-1; i >= 0; i -= 2) {
|
|
|
3 |
2 |
for(i = AvFILL(condcatch)-1; i >= 0; i -= 2) {
|
|
515
|
0 |
46 |
if(require_catch && !catch)
|
|
518
|
46 |
0 |
bool no_finally = hints && hv_fetchs(hints, "Syntax::Keyword::Try/no_finally", 0);
|
|
|
45 |
1 |
bool no_finally = hints && hv_fetchs(hints, "Syntax::Keyword::Try/no_finally", 0);
|
|
521
|
11 |
35 |
CV *finally = has_finally ? args[argi++]->cv : NULL;
|
|
523
|
1 |
45 |
if(no_finally && finally)
|
|
526
|
0 |
45 |
if(!catch && !finally) {
|
|
528
|
0 |
0 |
croak(no_finally
|
|
535
|
38 |
7 |
if(catch) {
|
|
542
|
10 |
35 |
if(finally) {
|