| line |
true |
false |
branch |
|
38
|
0 |
251 |
if @_ < 1 |
|
|
0 |
251 |
if @_ > 1 |
|
47
|
0 |
1 |
if @_ < 2 |
|
|
0 |
1 |
if @_ > 2 |
|
51
|
0 |
4 |
if @_ < 2 |
|
|
0 |
4 |
if @_ > 2 |
|
55
|
0 |
5 |
if @_ < 2 |
|
|
0 |
5 |
if @_ > 2 |
|
59
|
0 |
13 |
if @_ < 2 |
|
|
0 |
13 |
if @_ > 2 |
|
60
|
11 |
2 |
if ($p1->{'type'} eq ":AT-P-IMMEDIATE") |
|
61
|
2 |
9 |
if ($p2->{'type'} eq ":AT-P-IMMEDIATE") |
|
62
|
2 |
0 |
length $p1->{'value'} <= length $p2->{'value'} ? : |
|
66
|
1 |
1 |
if ($p2->{'type'} eq ":AT-P-IMMEDIATE") |
|
69
|
0 |
1 |
unless $p1->{'type'} eq ":AT-P-VARIABLE" and $p2->{'type'} eq ":AT-P-VARIABLE" |
|
74
|
0 |
4 |
if @_ < 2 |
|
|
0 |
4 |
if @_ > 2 |
|
75
|
0 |
4 |
unless $t1->{'type'} eq ":AT-P-TRANSFORM" and $t2->{'type'} eq ":AT-P-TRANSFORM" |
|
81
|
0 |
8 |
if @_ < 1 |
|
|
0 |
8 |
if @_ > 1 |
|
87
|
0 |
18 |
if @_ < 2 |
|
|
0 |
18 |
if @_ > 2 |
|
88
|
2 |
16 |
if ($p1->{'type'} eq ":AT-P-FRAGMENT") |
|
89
|
0 |
2 |
if ($p2->{'type'} eq ":AT-P-FRAGMENT" or $p2->{'type'} eq ":AT-P-TRANSFORM") |
|
92
|
0 |
0 |
unless $p2->{'type'} eq ":AT-P-IMMEDIATE" or $p2->{'type'} eq ":AT-P-VARIABLE" or $p2->{'type'} eq ":AT-P-VARHTML" |
|
97
|
3 |
13 |
if ($p2->{'type'} eq ":AT-P-FRAGMENT") |
|
98
|
3 |
0 |
if ($p1->{'type'} eq ":AT-P-TRANSFORM") |
|
101
|
0 |
0 |
unless $p1->{'type'} eq ":AT-P-IMMEDIATE" or $p1->{'type'} eq ":AT-P-VARIABLE" or $p1->{'type'} eq ":AT-P-VARHTML" |
|
106
|
0 |
13 |
if ($p1->{'type'} eq ":AT-P-VARHTML") |
|
107
|
0 |
0 |
if ($p2->{'type'} eq ":AT-P-VARHTML" or $p2->{'type'} eq ":AT-P-TRANSFORM") |
|
110
|
0 |
0 |
unless $p2->{'type'} eq ":AT-P-IMMEDIATE" or $p2->{'type'} eq ":AT-P-VARIABLE" |
|
114
|
0 |
13 |
if ($p2->{'type'} eq ":AT-P-VARHTML") |
|
115
|
0 |
0 |
if ($p1->{'type'} eq ":AT-P-TRANSFORM") |
|
118
|
0 |
0 |
unless $p1->{'type'} eq ":AT-P-IMMEDIATE" or $p1->{'type'} eq ":AT-P-VARIABLE" |
|
123
|
5 |
8 |
if ($p1->{'type'} eq ":AT-P-TRANSFORM") |
|
124
|
4 |
1 |
if ($p2->{'type'} eq ":AT-P-TRANSFORM") |
|
127
|
0 |
1 |
unless $p2->{'type'} eq ":AT-P-IMMEDIATE" or $p2->{'type'} eq ":AT-P-VARIABLE" |
|
132
|
0 |
8 |
if ($p2->{'type'} eq ":AT-P-TRANSFORM") |
|
133
|
0 |
0 |
unless $p1->{'type'} eq ":AT-P-IMMEDIATE" or $p1->{'type'} eq ":AT-P-VARIABLE" |
|
141
|
0 |
79 |
if @_ < 2 |
|
|
0 |
79 |
if @_ > 2 |
|
142
|
58 |
21 |
unless defined $p2 |
|
143
|
3 |
18 |
unless defined $p1 |
|
147
|
0 |
35 |
if @_ < 2 |
|
|
0 |
35 |
if @_ > 2 |
|
148
|
20 |
15 |
if $aa1->{'type'} eq ":AT-A-REMOVE-ATTR" |
|
149
|
0 |
15 |
if $aa2->{'type'} eq ":AT-A-REMOVE-ATTR" |
|
150
|
15 |
0 |
if ($aa1->{'type'} eq ":AT-A-SET-ATTR") |
|
151
|
5 |
10 |
if ($aa2->{'type'} eq ":AT-A-SET-ATTR") |
|
154
|
0 |
10 |
unless $aa2->{'type'} eq ":AT-A-MODIFY-ATTR" |
|
158
|
0 |
0 |
if ($aa2->{'type'} eq ":AT-A-SET-ATTR") |
|
159
|
0 |
0 |
unless $aa1->{'type'} eq ":AT-A-MODIFY-ATTR" |
|
163
|
0 |
0 |
unless $aa1->{'type'} eq ":AT-A-MODIFY-ATTR" and $aa2->{'type'} eq ":AT-A-MODIFY-ATTR" |
|
168
|
0 |
79 |
if @_ < 2 |
|
|
0 |
79 |
if @_ > 2 |
|
169
|
15 |
64 |
if ($asa1->{'type'} eq ":AT-AS-REPLACE-ATTRS") |
|
170
|
15 |
0 |
if ($asa2->{'type'} eq ":AT-AS-REPLACE-ATTRS") |
|
174
|
2 |
0 |
keys %{$$asa1{'content'};} <= keys %{$$asa2{'content'};} ? : |
|
|
3 |
2 |
&all(sub {
$_->{'type'} eq ':AT-P-IMMEDIATE';
}
, values %{$$asa2{'content'};}) ? : |
|
|
10 |
5 |
&all(sub {
$_->{'type'} eq ':AT-P-IMMEDIATE';
}
, values %{$$asa1{'content'};}) ? : |
|
177
|
0 |
0 |
unless $asa2->{'type'} eq ":AT-AS-MODIFY-ATTRS" |
|
181
|
0 |
64 |
if ($asa2->{'type'} eq ":AT-AS-REPLACE-ATTRS") |
|
182
|
0 |
0 |
unless $asa1->{'type'} eq ":AT-AS-MODIFY-ATTRS" |
|
186
|
0 |
64 |
unless $asa1->{'type'} eq ":AT-AS-MODIFY-ATTRS" and $asa2->{'type'} eq ":AT-AS-MODIFY-ATTRS" |
|
191
|
35 |
8 |
exists $content{$k} ? : |
|
196
|
0 |
0 |
if @_ < 2 |
|
|
0 |
0 |
if @_ > 2 |
|
197
|
0 |
0 |
if (defined $act1 and defined $act2) { } |
|
202
|
0 |
79 |
if @_ < 2 |
|
|
0 |
79 |
if @_ > 2 |
|
203
|
0 |
79 |
if ($act1->{'type'} eq ":AT-REMOVE-IF") |
|
204
|
0 |
0 |
if ($act2->{'type'} eq ":AT-REMOVE-IF") |
|
209
|
0 |
79 |
if ($act2->{'type'} eq ":AT-REMOVE-IF") |
|
212
|
0 |
79 |
if ($act1->{'type'} eq ":AT-REPLACE-OUTER") |
|
213
|
0 |
0 |
if ($act2->{'type'} eq ":AT-REPLACE-OUTER") |
|
218
|
0 |
79 |
if ($act2->{'type'} eq ":AT-REPLACE-OUTER") |
|
221
|
0 |
79 |
if ($act1->{'type'} eq ":AT-REPEAT-OUTER") |
|
224
|
0 |
79 |
if ($act2->{'type'} eq ":AT-REPEAT-OUTER") |
|
227
|
0 |
79 |
unless $act1->{'type'} eq ":AT-REPLACE-INNER" and $act2->{'type'} eq ":AT-REPLACE-INNER" |
|
241
|
0 |
267 |
if @_ < 2 |
|
|
0 |
267 |
if @_ > 2 |
|
242
|
5 |
262 |
if ($action->{'type'} eq ':AT-REMOVE-IF') { } |
|
|
7 |
255 |
elsif ($action->{'type'} eq ':AT-REPLACE-OUTER') { } |
|
|
1 |
254 |
elsif ($action->{'type'} eq ':AT-REPEAT-OUTER') { } |
|
250
|
2 |
5 |
if ($param->{'type'} eq ':AT-P-VARIABLE' or $param->{'type'} eq ':AT-P-VARHTML') { } |
|
|
2 |
3 |
elsif ($param->{'type'} eq ':AT-P-TRANSFORM') { } |
|
252
|
2 |
0 |
unless (defined $value->[0]) |
|
256
|
1 |
1 |
if (@{$param->{'dynamic'};}) |
|
261
|
1 |
0 |
unless (defined $action->{'var'}[0]) |
|
265
|
0 |
254 |
unless $action->{'type'} eq ":AT-REPLACE-INNER" |
|
269
|
0 |
31 |
if @_ < 1 |
|
|
0 |
31 |
if @_ > 1 |
|
270
|
0 |
31 |
if (defined $var->[0]) { } |
|
278
|
6 |
248 |
if ($asa->{'type'} eq ':AT-AS-REPLACE-ATTRS') { } |
|
284
|
3 |
9 |
if ($value->{'type'} eq ':AT-P-VARIABLE' and not defined $value->{'value'}[0]) { } |
|
292
|
0 |
248 |
unless $asa->{'type'} eq ":AT-AS-MODIFY-ATTRS" |
|
299
|
7 |
37 |
if ($value->{'type'} eq ':AT-A-SET-ATTR' and $value->{'param'}{'type'} eq ':AT-P-VARIABLE' and not defined $value->{'param'}{'value'}[0]) { } |
|
|
5 |
32 |
elsif ($value->{'type'} eq ':AT-A-MODIFY-ATTR' and @{+(my $param = $value->{'param'})->{'dynamic'}}) { } |
|
303
|
0 |
5 |
unless $param->{'type'} eq ":AT-P-TRANSFORM" |
|
321
|
205 |
49 |
if (defined(my $param = $action->{'content'})) |
|
322
|
36 |
169 |
if ($param->{'type'} eq ':AT-P-VARIABLE' || $param->{'type'} eq ':AT-P-VARHTML' and not defined $param->{'value'}[0]) { } |
|
|
23 |
146 |
elsif ($param->{'type'} eq ':AT-P-TRANSFORM' and @{$param->{'dynamic'};}) { } |
|
338
|
3 |
251 |
if (@{$replacement{"repeat"};} = @{$action->{'repeat'};}) |
|
340
|
3 |
0 |
unless (defined $$rfirst->{'var'}[0]) |
|
346
|
76 |
178 |
if $did_replace |
|
351
|
0 |
249 |
if @_ < 3 |
|
358
|
0 |
243 |
if @_ < 2 |
|
|
0 |
243 |
if @_ > 2 and (@_ - 2) % 2 |
|
|
0 |
243 |
if keys %{__rest} |
|
363
|
259 |
273 |
if ($token->{'type'} eq ':TT-TAG-CLOSE') { } |
|
|
32 |
241 |
elsif ($token->{'type'} eq ':TT-TAG-OPEN') { } |
|
|
49 |
384 |
elsif ($collect_content and $token->{'type'} eq ':TT-TEXT') { } |
|
364
|
243 |
16 |
if $depth == 0 |
|
367
|
16 |
16 |
unless $token->{'is_self_closing'} |
|
372
|
49 |
194 |
$collect_content ? : |
|
375
|
0 |
266 |
if @_ < 2 |
|
|
0 |
266 |
if @_ > 2 |
|
379
|
0 |
276 |
if @_ < 3 |
|
|
0 |
276 |
if @_ > 3 |
|
388
|
10 |
4856 |
if ($token->{'type'} eq ':TT-DOCTYPE') { } |
|
|
42 |
4814 |
elsif ($token->{'type'} eq ':TT-COMMENT') { } |
|
|
2175 |
2639 |
elsif ($token->{'type'} eq ':TT-TEXT') { } |
|
|
1093 |
1546 |
elsif ($token->{'type'} eq ':TT-TAG-CLOSE') { } |
|
|
1546 |
0 |
elsif ($token->{'type'} eq ':TT-TAG-OPEN') { } |
|
389
|
9 |
1 |
if ($self->{'keep_doctype'}) |
|
393
|
34 |
8 |
if ($token->{'content'} =~ /$self->{'keep_comments_re'}/u) |
|
397
|
3 |
2172 |
if ($token->{'content'} =~ /$self->{'dummy_marker_re'}/u) |
|
401
|
28 |
2144 |
if ($cur_tag eq 'script') { } |
|
|
66 |
2078 |
elsif ($cur_tag eq 'style') { } |
|
414
|
5 |
1541 |
if (defined $action and $action->{'type'} eq ":AT-REMOVE-IF") |
|
420
|
0 |
5 |
if @_ > 1 |
|
|
1 |
4 |
if @_ < 1 |
|
426
|
1188 |
358 |
unless (defined $action) |
|
429
|
1 |
1187 |
if (@bad_attrs) |
|
433
|
135 |
1052 |
if $token->{'is_self_closing'} |
|
437
|
7 |
351 |
if ($action->{'type'} eq ":AT-REPLACE-OUTER") |
|
440
|
2 |
5 |
if ($param->{'type'} eq ':AT-P-IMMEDIATE') { } |
|
|
1 |
4 |
elsif ($param->{'type'} eq ':AT-P-VARIABLE') { } |
|
|
1 |
3 |
elsif ($param->{'type'} eq ':AT-P-FRAGMENT') { } |
|
|
1 |
2 |
elsif ($param->{'type'} eq ':AT-P-VARHTML') { } |
|
449
|
0 |
2 |
unless $param->{'type'} eq ":AT-P-TRANSFORM" |
|
451
|
2 |
0 |
unless ($token->{'is_void'}) |
|
452
|
0 |
2 |
$token->{'is_self_closing'} ? : |
|
455
|
1 |
1 |
if (@{$param->{'dynamic'};}) { } |
|
463
|
5 |
0 |
unless $skipped or $token->{'is_self_closing'} |
|
480
|
1 |
0 |
defined $inplace ? : |
|
484
|
0 |
1 |
if @_ > 1 |
|
|
0 |
1 |
if @_ < 1 |
|
490
|
0 |
351 |
unless $action->{'type'} eq ":AT-REPLACE-INNER" |
|
496
|
16 |
335 |
if ($attrset->{'type'} eq ':AT-AS-REPLACE-ATTRS') { } |
|
500
|
33 |
4 |
if ($param->{'type'} eq ':AT-P-IMMEDIATE') { } |
|
503
|
0 |
4 |
unless $param->{'type'} eq ":AT-P-VARIABLE" |
|
509
|
0 |
335 |
unless $attrset->{'type'} eq ":AT-AS-MODIFY-ATTRS" |
|
524
|
14 |
85 |
if ($attr_action->{'type'} eq ':AT-A-REMOVE-ATTR') { } |
|
|
39 |
46 |
elsif ($attr_action->{'type'} eq ':AT-A-SET-ATTR') { } |
|
529
|
0 |
46 |
unless $attr_action->{'type'} eq ":AT-A-MODIFY-ATTR" |
|
532
|
0 |
46 |
unless $param->{'type'} eq ":AT-P-TRANSFORM" |
|
535
|
5 |
41 |
if (@{$param->{'dynamic'};}) { } |
|
|
6 |
35 |
elsif (not defined $value) { } |
|
548
|
333 |
15 |
if ($param->{'type'} eq ':AT-P-IMMEDIATE') { } |
|
|
10 |
5 |
elsif ($param->{'type'} eq ':AT-P-VARIABLE') { } |
|
549
|
1 |
332 |
if ($param->{'pristine'} and $param->{'value'} =~ /$self->{'dummy_marker_re'}/u) |
|
556
|
0 |
5 |
unless $param->{'type'} eq ":AT-P-TRANSFORM" |
|
562
|
1 |
334 |
if @bad_attrs |
|
580
|
247 |
103 |
if (defined(my $param = $action->{'content'})) { } |
|
|
42 |
61 |
elsif ($token->{'is_self_closing'}) { } |
|
582
|
0 |
247 |
if $token->{'is_void'} |
|
585
|
157 |
90 |
if ($param->{'type'} eq ':AT-P-IMMEDIATE') { } |
|
|
31 |
59 |
elsif ($param->{'type'} eq ':AT-P-VARIABLE') { } |
|
|
8 |
51 |
elsif ($param->{'type'} eq ':AT-P-FRAGMENT') { } |
|
|
4 |
47 |
elsif ($param->{'type'} eq ':AT-P-VARHTML') { } |
|
586
|
21 |
136 |
if ($token->{'name'} eq 'script') { } |
|
|
1 |
135 |
elsif ($token->{'name'} eq 'style') { } |
|
594
|
18 |
13 |
if ($token->{'name'} eq 'script') { } |
|
|
1 |
12 |
elsif ($token->{'name'} eq 'style') { } |
|
602
|
2 |
5 |
if $token->{'name'} eq "script" or $token->{'name'} eq "style" or $token->{'name'} eq "title" |
|
606
|
2 |
1 |
if $token->{'name'} eq "script" or $token->{'name'} eq "style" or $token->{'name'} eq "title" |
|
610
|
0 |
47 |
unless $param->{'type'} eq ":AT-P-TRANSFORM" |
|
612
|
0 |
47 |
$token->{'is_self_closing'} ? : |
|
615
|
25 |
22 |
if (@{$param->{'dynamic'};}) { } |
|
616
|
18 |
7 |
if ($token->{'name'} eq 'script') { } |
|
|
1 |
6 |
elsif ($token->{'name'} eq 'style') { } |
|
624
|
18 |
4 |
if ($token->{'name'} eq 'script') { } |
|
|
1 |
3 |
elsif ($token->{'name'} eq 'style') { } |
|
634
|
189 |
0 |
unless $skipped or $token->{'is_self_closing'} |
|
639
|
0 |
42 |
unless $token->{'is_void'} |