blib/lib/JE/Code.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
condition | 170 | 211 | 80.5 |
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 |
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') |
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 | 9 | $code || (return $msg) |
958 | 215 | 2 | defined($obj = $obj->prototype) || (return 'JE::Boolean'->new($JE::Code::global, 0)) |
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 |