Condition Coverage

blib/lib/JE/Code.pm
Criterion Covered Total %
condition 170 211 80.5


and 2 conditions

line l !l condition
193 95 193 0 defined $return and $rv = $return
349 18090 55 0 ref $JE::Code::return eq 'JE::LValue' && $JE::Code::return->get
1134 112 1 ++$JE::Code::ops > $JE::Code::counting and last JE_Code_OP

and 3 conditions

line !l l&&!r l&&r condition
61 328 0 0 $ENV{'YES_I_WANT_JE_TO_OPTIMISE'} and $ENV{'YES_I_WANT_JE_TO_OPTIMISE'} ne 2
90 0 0 0 ref $_ and ref $$_[4] eq 'JE::Code'
142 2 2202 2 not defined our $ops and my $max_ops = $global->max_ops
225 333 1821 49 defined $rv and tainted $taint
2154 1 32 defined $rv and tainted $taint and $rv->can('taint')
228 17 5 2165 ref $@ eq '' and $@ eq ''
372 129 0 19 exists $$stm[4] and $$stm[4] ne 'empty'
399 16 317 40 $type eq 'for' and $$stm[3] eq 'in'
407 21 1 2 $_label and not first(sub { $_ eq $_label; } , @labels)
421 42 5 2 $_label and not first(sub { $_ eq $_label; } , @labels)
442 5229 0 0 $_label and not first(sub { $_ eq $_label; } , @labels)
462 40 0 0 $_label and not first(sub { $_ eq $_label; } , @labels)
471 14 213 90 ref $$stm[2] && $$stm[2]->eval
316 0 0 ref $tmp eq 'JE::LValue' && $tmp->get
14 3 2836 ref $$stm[4] && $$stm[4]->eval
2850 0 0 ref $tmp eq 'JE::LValue' && $tmp->get
479 2847 6 4 $_label and not first(sub { $_ eq $_label; } , @labels)
615 0 0 290 ref $@ || $@ ne '' and not ref $$stm[3]
655 26 290 0 defined $exception and ref $exception || $exception ne ''
763 18 147 1 ref $term eq 'JE::LValue' and ref $term->base eq ''
814 1 0 6 $num && $num == $num
825 4 34 4 $num == $num && abs $denom == 9**9**9
910 1521 10 10 $x->typeof eq 'string' && $y->typeof eq 'string'
918 60 10 10 $x->typeof eq 'string' && $y->typeof eq 'string'
926 1554 10 10 $x->typeof eq 'string' && $y->typeof eq 'string'
934 52 10 10 $x->typeof eq 'string' && $y->typeof eq 'string'
975 519 1405 654 $xi eq $yi && $xi ne 'num:nan'
1000 42 28 12 $xt eq 'string' || $xt eq 'number' and not $y->primitive
0 28 42 $yt eq 'string' || $yt eq 'number' and not $x->primitive
1006 38 44 0 $xt eq 'number' and $yt eq 'string' || $yt eq 'number'
20 18 0 $yt eq 'number' and $xt eq 'string' || $xt eq 'number'
1013 0 0 20 $xt eq 'string' and $yt eq 'string'
1025 133 2 8824 $xi eq $yi && $xi ne 'num:nan'
1172 0 7465 0 @copy >= 3 && (ref ${$copy[-2];} || ${$copy[-2];} =~ /^(?:[tfu]|[si0-9])/)
1198 6926 0 0 tainted $JE::Code::taint and $val->can('taint')

or 2 conditions

line l !l condition
99 0 0 ref $_ || (next)
150 1991 213 shift() || bless([$global], 'JE::Scope')
152 1992 212 shift() || 0
176 1681 523 $$code{'cache'} ||= []
187 0 0 eval { do { die unless eval "sub{$$code{'psrc'}}" } } || die('Internal error that should never' . " happen (please report this): $@: " . $$code{'psrc'})
244 286 12 $code || (return $msg)
958 215 2 defined($obj = $obj->prototype) || (return 'JE::Boolean'->new($JE::Code::global, 0))

or 3 conditions

line l !l&&r !l&&!r condition
244 149 136 1 defined(my $file = ($code || (return $msg))->{'file'}) or defined $pos
310 134 237 12854 $type eq 'empty' or $type eq 'function'
333 6 6 1 not defined $_label or first sub { $_ eq $_label; } , @labels
545 394 4 4 not $_label or first sub { $_ eq $_label; } , @labels
615 259 31 0 ref $@ || $@ ne ''
652 2 4 310 $#$stm == 3 or $#$stm == 5
655 0 0 290 ref $exception || $exception ne ''
792 4 2 32 $num != $num || abs $num == 9**9**9
835 14433 5061 307 $x->typeof eq 'string' or $y->typeof eq 'string'
852 50 58 789 $num != $num || abs $num == 9**9**9
859 50 58 789 $shift_by != $shift_by || abs $shift_by == 9**9**9
876 43 58 796 $num != $num || abs $num == 9**9**9
883 43 58 796 $shift_by != $shift_by || abs $shift_by == 9**9**9
894 43 58 796 $num != $num || abs $num == 9**9**9
900 43 58 796 $shift_by != $shift_by || abs $shift_by == 9**9**9
953 1 1 206 not defined $proto_id or $proto_id->primitive
1000 16 24 42 $xt eq 'string' || $xt eq 'number'
28 42 0 $yt eq 'string' || $yt eq 'number'
1006 14 30 0 $yt eq 'string' || $yt eq 'number'
18 0 0 $xt eq 'string' || $xt eq 'number'
44 0 38 $xt eq 'number' and $yt eq 'string' || $yt eq 'number' or $yt eq 'number' and $xt eq 'string' || $xt eq 'number'
1037 50 58 791 $num != $num || abs $num == 9**9**9
1044 50 58 791 $num2 != $num2 || abs $num2 == 9**9**9
1056 50 58 791 $num != $num || abs $num == 9**9**9
1063 50 58 791 $num2 != $num2 || abs $num2 == 9**9**9
1075 50 58 792 $num != $num || abs $num == 9**9**9
1082 50 58 792 $num2 != $num2 || abs $num2 == 9**9**9
1311 97 37 15480 ref $$expr[$_ - 1] eq 'comma' or $_ == 2