Branch Coverage

blib/lib/JSON/Relaxed.pm
Criterion Covered Total %
branch 124 138 89.8


line true false branch
641 2 75 if (defined $opts{'unknown'})
660 2 14 if (@_ > 1)
661 1 1 $_[1] ? :
665 5 11 $$parser{'extra_tokens_ok'} ? :
697 22 55 if ($JSON::Relaxed::err_id) { }
753 0 0 if (ref $object) { }
0 0 elsif (defined $object) { }
782 2 61 if (defined $$parser{'unknown'})
783 2 0 if ($char eq $$parser{'unknown'})
807 0 50 unless (defined $token)
811 22 28 if (ref $token)
815 4 24 if ($token eq '{')
819 5 19 if ($token eq '[')
842 0 215 unless (defined $token)
846 0 215 if (ref $token)
850 1 214 if ($token eq '/*')
854 1 213 if ($token eq '//')
901 1 67 if (@_ < 2)
909 1 66 unless (defined $raw)
917 1 65 if ($raw eq '')
925 1 64 unless ($raw =~ /\S/s)
948 2 62 unless (@tokens)
1085 27 427 if ($char eq '//') { }
7 420 elsif ($char eq '/*') { }
0 420 elsif ($char eq '/*') { }
130 290 elsif (not $char =~ /\S/) { }
189 101 elsif ($JSON::Relaxed::structural{$char}) { }
38 63 elsif ($JSON::Relaxed::quotes{$char}) { }
2 61 elsif ($parser->is_unknown_char($char)) { }
1091 27 538 if ($JSON::Relaxed::newlines{$next})
1104 6 69 if ($next eq '*/')
1123 0 0 if ($next eq '*/')
1185 9 62 if (defined $opts{'opener'}) { }
1191 3 68 unless (defined $opener)
1195 14 54 if ($parser->is_string($opener)) { }
31 23 elsif ($opener eq '{') { }
19 4 elsif ($opener eq '[') { }
1222 55 9 if ($opts{'top'})
1223 36 19 unless ($parser->is_error)
1224 11 25 if (@$tokens)
1225 8 3 unless ($parser->extra_tokens_ok)
1250 2 14 if ($parser->is_string($token)) { }
1 13 elsif (ref $token) { }
1345 16 63 if ($next eq '}') { }
29 34 elsif ($next eq ',') { }
30 4 elsif ($parser->is_string($next)) { }
1364 30 0 if (defined $t0) { }
1366 24 6 if ($t0 eq ':') { }
4 2 elsif ($t0 eq ',') { }
0 2 elsif ($t0 eq '}') { }
1371 2 22 unless @$tokens
1377 3 19 if $parser->is_error
1454 12 10 if ($parser->is_string($next)) { }
8 2 elsif ($parser->is_list_opener($next)) { }
1548 14 40 if ($next eq ']') { }
1 39 elsif ($parser->is_list_opener($next)) { }
16 23 elsif ($next eq ',') { }
21 2 elsif ($parser->is_string($next)) { }
1555 0 1 unless defined $object
1570 20 1 if (@$tokens)
1575 2 18 unless ($n2 eq ',' or $n2 eq ']')
1782 36 114 if ($next eq $$str{'quote'})
1786 9 105 if ($next =~ s/^\\(.)/$1/s)
1787 6 3 if ($JSON::Relaxed::esc{$next})
1916 45 224 if ($JSON::Relaxed::structural{$$chars[0]})
1920 9 215 unless ($$chars[0] =~ /\S/s)
1924 2 213 if ($parser->is_comment_opener($$chars[0]))
1983 34 23 unless ($opts{'always_string'})
1984 13 21 if (exists $JSON::Relaxed::boolean{lc $rv})