Branch Coverage

blib/lib/WAP/wmls/optim.pm
Criterion Covered Total %
branch 0 656 0.0


line true false branch
20 0 0 if (exists $parser->YYData->{'nb_warning'}) { }
27 0 0 if exists $parser->YYData->{'verbose_warning'} and $parser->YYData->{'verbose_warning'}
39 0 0 if (exists $parser->YYData->{'nb_info'}) { }
45 0 0 if exists $parser->YYData->{'verbose_info'} and $parser->YYData->{'verbose_info'}
57 0 0 if exists $parser->YYData->{'verbose_debug'} and $parser->YYData->{'verbose_debug'}
67 0 0 if ($value > {sign => '+', value => ['147483647', '2']} or $value < {sign => '-', value => ['147483648', '2']})
79 0 0 if ($abs_v > {sign => '+', value => ['000000000', '000000000', '000000000', '282347000', '340']}) { }
0 0 elsif ($abs_v < {_e => [46], _es => '-', _m => [117549435], sign => '+'}) { }
95 0 0 if ($oper eq 'typeof') { }
0 0 elsif ($oper eq 'isvalid') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '~') { }
0 0 elsif ($oper eq '!') { }
0 0 elsif ($oper eq '++') { }
0 0 elsif ($oper eq '--') { }
120 0 0 $$opcode{'Value'} ? :
148 0 0 if ($oper eq 'typeof') { }
0 0 elsif ($oper eq 'isvalid') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '~') { }
0 0 elsif ($oper eq '!') { }
0 0 elsif ($oper eq '++') { }
0 0 elsif ($oper eq '--') { }
197 0 0 if ($oper eq 'typeof') { }
0 0 elsif ($oper eq 'isvalid') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '~') { }
0 0 elsif ($oper eq '!') { }
0 0 elsif ($oper eq '++') { }
0 0 elsif ($oper eq '--') { }
214 0 0 length $$opcode{'Value'} ? :
234 0 0 if ($oper eq 'typeof') { }
0 0 elsif ($oper eq 'isvalid') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '~') { }
0 0 elsif ($oper eq '!') { }
0 0 elsif ($oper eq '++') { }
0 0 elsif ($oper eq '--') { }
250 0 0 $$opcode{'Value'} ? :
269 0 0 if ($oper eq 'typeof') { }
0 0 elsif ($oper eq 'isvalid') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '~') { }
0 0 elsif ($oper eq '!') { }
0 0 elsif ($oper eq '++') { }
0 0 elsif ($oper eq '--') { }
311 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
333 0 0 if ($$right{'OpCode'}{'Value'} == {sign => '+', value => [0]})
343 0 0 if ($$right{'OpCode'}{'Value'} == {sign => '+', value => [0]}) { }
358 0 0 if ($$right{'OpCode'}{'Value'} == {sign => '+', value => [0]}) { }
395 0 0 $$left{'OpCode'}{'Value'} < $$right{'OpCode'}{'Value'} ? :
402 0 0 $$left{'OpCode'}{'Value'} > $$right{'OpCode'}{'Value'} ? :
409 0 0 $$left{'OpCode'}{'Value'} <= $$right{'OpCode'}{'Value'} ? :
416 0 0 $$left{'OpCode'}{'Value'} >= $$right{'OpCode'}{'Value'} ? :
423 0 0 $$left{'OpCode'}{'Value'} == $$right{'OpCode'}{'Value'} ? :
430 0 0 $$left{'OpCode'}{'Value'} != $$right{'OpCode'}{'Value'} ? :
467 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
489 0 0 if ($$right{'OpCode'}{'Value'} == {sign => '+', value => [0]}) { }
541 0 0 if ($val == {sign => '+', value => [0]}) { }
0 0 elsif ($val == {sign => '+', value => [1]}) { }
0 0 elsif ($val == {sign => '-', value => [1]}) { }
542 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
616 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
664 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
720 0 0 if ($val == {sign => '+', value => [0]}) { }
0 0 elsif ($val == {sign => '+', value => [1]}) { }
0 0 elsif ($val == {sign => '-', value => [1]}) { }
721 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
804 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
863 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
931 0 0 if ($val == {sign => '+', value => [0]})
932 0 0 if ($oper eq '+') { }
0 0 elsif ($oper eq '-') { }
0 0 elsif ($oper eq '*') { }
0 0 elsif ($oper eq '/') { }
0 0 elsif ($oper eq 'div') { }
0 0 elsif ($oper eq '%') { }
0 0 elsif ($oper eq '<<') { }
0 0 elsif ($oper eq '>>') { }
0 0 elsif ($oper eq '>>>') { }
0 0 elsif ($oper eq '<') { }
0 0 elsif ($oper eq '>') { }
0 0 elsif ($oper eq '<=') { }
0 0 elsif ($oper eq '>=') { }
0 0 elsif ($oper eq '==') { }
0 0 elsif ($oper eq '!=') { }
0 0 elsif ($oper eq '&') { }
0 0 elsif ($oper eq '^') { }
0 0 elsif ($oper eq '|') { }
983 0 0 if ($val == {sign => '+', value => [1]}) { }
0 0 elsif ($val == {sign => '+', value => [0]}) { }
0 0 elsif ($val == {sign => '-', value => [1]}) { }
1002 0 0 if ($val == {sign => '+', value => [1]}) { }
0 0 elsif ($val == {sign => '+', value => [0]}) { }
0 0 elsif ($val == {sign => '-', value => [1]}) { }
1029 0 0 if ($opcode->isa('UnaryOp')) { }
0 0 elsif ($opcode->isa('BinaryOp')) { }
0 0 elsif ($opcode->isa('AddAsg')) { }
0 0 elsif ($opcode->isa('SubAsg')) { }
1031 0 0 unless defined $prev
1033 0 0 if ($$prev{'OpCode'}->isa('LoadConst'))
1035 0 0 if ($type eq 'TYPE_INTEGER') { }
0 0 elsif ($type eq 'TYPE_FLOAT') { }
0 0 elsif ($type eq 'TYPE_STRING' or $type eq 'TYPE_UTF8_STRING') { }
0 0 elsif ($type eq 'TYPE_BOOLEAN') { }
0 0 elsif ($type eq 'TYPE_INVALID') { }
1057 0 0 unless defined $right
1060 0 0 unless defined $left
1062 0 0 if ($$left{'OpCode'}->isa('LoadConst') and $$left{'OpCode'}{'TypeDef'} eq 'TYPE_INVALID') { }
0 0 elsif ($$right{'OpCode'}->isa('LoadConst') and $$right{'OpCode'}{'TypeDef'} eq 'TYPE_INVALID') { }
0 0 elsif ($$left{'OpCode'}->isa('LoadConst') and $$right{'OpCode'}->isa('LoadConst')) { }
0 0 elsif ($$left{'OpCode'}->isa('LoadConst')) { }
0 0 elsif ($$right{'OpCode'}->isa('LoadConst')) { }
1078 0 0 if ($type_l eq $type_r)
1079 0 0 if ($type_r eq 'TYPE_INTEGER') { }
0 0 elsif ($type_r eq 'TYPE_FLOAT') { }
1089 0 0 if ($type eq 'TYPE_INTEGER')
1095 0 0 if ($type eq 'TYPE_INTEGER') { }
0 0 elsif ($type eq 'TYPE_FLOAT') { }
1105 0 0 unless defined $prev
1107 0 0 if ($$prev{'OpCode'}->isa('LoadConst'))
1108 0 0 if ($$prev{'OpCode'}{'TypeDef'} eq 'TYPE_INTEGER' or $$prev{'OpCode'}{'TypeDef'} eq 'TYPE_FLOAT')
1116 0 0 unless defined $prev
1118 0 0 if ($$prev{'OpCode'}->isa('LoadConst'))
1119 0 0 if ($$prev{'OpCode'}{'TypeDef'} eq 'TYPE_INTEGER' or $$prev{'OpCode'}{'TypeDef'} eq 'TYPE_FLOAT')
1136 0 0 if ($$node{'OpCode'}->isa('LoadVar'))
1138 0 0 if (defined $next)
1140 0 0 if ($opcode->isa('Pop')) { }
0 0 elsif ($opcode->isa('IncrVar') or $opcode->isa('DecrVar')) { }
1146 0 0 if (defined $next)
1147 0 0 if ($$next{'OpCode'}->isa('Pop'))
1164 0 0 if ($$node{'OpCode'}->isa('ToBool'))
1166 0 0 if (defined $next)
1168 0 0 if ($opcode->isa('FalseJump') or $opcode->isa('ScAnd') or $opcode->isa('ScOr') or $opcode->isa('ToBool') or $opcode->isa('UnaryOp') and $$opcode{'Operator'} eq '!')
1186 0 0 if ($$node{'OpCode'}->isa('UnaryOp') and $$node{'OpCode'}{'Operator'} eq '!')
1189 0 0 unless defined $prev
1192 0 0 if ($opcode->isa('BinaryOp')) { }
0 0 elsif ($opcode->isa('UnaryOp')) { }
1193 0 0 if ($$opcode{'Operator'} eq '<') { }
0 0 elsif ($$opcode{'Operator'} eq '>') { }
0 0 elsif ($$opcode{'Operator'} eq '<=') { }
0 0 elsif ($$opcode{'Operator'} eq '>=') { }
0 0 elsif ($$opcode{'Operator'} eq '==') { }
0 0 elsif ($$opcode{'Operator'} eq '!=') { }
1225 0 0 if ($$opcode{'Operator'} eq '!')
1241 0 0 if ($$node{'OpCode'}->isa('Label'))
1242 0 0 if ($$node{'OpCode'}{'Definition'}{'NbUse'} == {sign => '+', value => [0]})
1256 0 0 if ($$node{'OpCode'}->isa('FalseJump'))
1258 0 0 if (defined $prev and $$prev{'OpCode'}->isa('LoadConst'))
1259 0 0 if ($$prev{'OpCode'}{'Value'}) { }
1283 0 0 if ($opcode->isa('Jump') or $opcode->isa('FalseJump'))
1286 0 0 if (defined $dest and $$dest{'OpCode'}->isa('Jump'))
1302 0 0 if ($$node{'OpCode'}->isa('FalseJump'))
1304 0 0 if (defined $next and $$next{'OpCode'}->isa('Jump'))
1306 0 0 if (defined $next2 and $$next2{'OpCode'}->isa('Label') and $$node{'OpCode'}{'Definition'} == $$next2{'OpCode'}{'Definition'})
1327 0 0 if ($opcode->isa('Jump') or $opcode->isa('FalseJump'))
1330 0 0 if (defined $next and $$next{'OpCode'}->isa('Label') and $label == $$next{'OpCode'}{'Definition'})
1333 0 0 if ($opcode->isa('Jump')) { }
1354 0 0 if ($opcode->isa('StoreVar') or $opcode->isa('AddAsg') or $opcode->isa('SubAsg')) { }
0 0 elsif ($opcode->isa('IncrVar') or $opcode->isa('DecrVar')) { }
1358 0 0 unless defined $expr
1365 0 0 if ($def == $$node{'OpCode'}{'Definition'})
1378 0 0 if ($$node{'OpCode'}->isa('Pop'))
1380 0 0 unless defined $prev
1383 0 0 if ($opcode->isa('LoadConst')) { }
0 0 elsif ($opcode->isa('LoadVar')) { }
0 0 elsif ($opcode->isa('UnaryOp')) { }
0 0 elsif ($opcode->isa('BinaryOp')) { }
1396 0 0 unless defined $expr
1406 0 0 unless defined $right
1408 0 0 unless defined $left
1426 0 0 if ($$node{'OpCode'}->isa('Jump') or $$node{'OpCode'}->isa('Return') or $$node{'OpCode'}->isa('ReturnES'))
1432 0 0 if $opcode->isa('Label') and $$opcode{'Definition'}{'Index'} > {sign => '+', value => [0]}
1434 0 0 if ($first)
1450 0 0 if ($opcode->isa('LoadVar') and $def == $$opcode{'Definition'})
1466 0 0 if ($opcode->isa('Argument') or $opcode->isa('LoadVar') or $opcode->isa('StoreVar') or $opcode->isa('IncrVar') or $opcode->isa('DecrVar') or $opcode->isa('AddAsg') or $opcode->isa('SubAsg'))
1478 0 0 if ($opcode->isa('Argument') or $opcode->isa('LoadVar') or $opcode->isa('StoreVar') or $opcode->isa('IncrVar') or $opcode->isa('DecrVar') or $opcode->isa('AddAsg') or $opcode->isa('SubAsg'))
1486 0 0 if ($$def{'Index'} == {sign => '+', value => [0]} and $$def{'NbUse'} != {sign => '+', value => [0]})
1495 0 0 if ($$next{'OpCode'}->isa('LoadVar')) { }
0 0 elsif ($$next{'OpCode'}->isa('StoreVar')) { }
0 0 elsif ($$next{'OpCode'}->isa('IncrVar') or $$next{'OpCode'}->isa('DecrVar') or $$next{'OpCode'}->isa('AddAsg') or $$next{'OpCode'}->isa('SubAsg')) { }
1496 0 0 if ($def == $$next{'OpCode'}{'Definition'})
1502 0 0 if ($def == $$next{'OpCode'}{'Definition'})
1511 0 0 if ($def == $$next{'OpCode'}{'Definition'})
1517 0 0 if ($nb_load == {sign => '+', value => [0]}) { }
0 0 elsif (not $opcode->isa('Argument') and $nb_modif == {sign => '+', value => [0]} and $nb_store == {sign => '+', value => [1]}) { }
1523 0 0 if ($$prev{'OpCode'}->isa('LoadConst')) { }
0 0 elsif ($nb_load == {sign => '+', value => [1]} and $store->getNextActive == $load) { }
1546 0 0 unless $$node{'OpCode'}->isa('Function')
1549 0 0 unless defined $func
1562 0 0 if ($OptExpr)
1563 0 0 if ($parser->optEvalExpr($func))