Branch Coverage

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


line true false branch
646 2 72 if (defined $opts{'unknown'})
665 2 14 if (@_ > 1)
666 1 1 $_[1] ? :
670 5 11 $parser->{'extra_tokens_ok'} ? :
702 22 47 if ($JSON::Relaxed::err_id) { }
758 0 0 if (ref $object) { }
0 0 elsif (defined $object) { }
787 2 45 if (defined $parser->{'unknown'})
788 2 0 if ($char eq $parser->{'unknown'})
812 0 32 unless (defined $token)
816 16 16 if (ref $token)
820 2 14 if ($token eq '{')
824 3 11 if ($token eq '[')
850 0 119 unless (defined $token)
854 0 119 if (ref $token)
858 1 118 if ($token eq '/*')
862 1 117 if ($token eq '//')
909 1 65 if (@_ < 2)
917 1 64 unless (defined $raw)
925 1 63 if ($raw eq '')
933 1 62 unless ($raw =~ /\S/s)
956 2 60 unless (@tokens)
1096 11 313 if ($char eq '//') { }
5 308 elsif ($char eq '/*') { }
0 308 elsif ($char eq '/*') { }
77 231 elsif ($char =~ /\s+/) { }
147 84 elsif ($JSON::Relaxed::structural{$char}) { }
37 47 elsif ($JSON::Relaxed::quotes{$char}) { }
2 45 elsif ($parser->is_unknown_char($char)) { }
1102 11 186 if ($JSON::Relaxed::newlines{$next})
1115 4 34 if ($next eq '*/')
1134 0 0 if ($next eq '*/')
1196 5 60 if (defined $opts{'opener'}) { }
1202 3 62 unless (defined $opener)
1206 14 48 if ($parser->is_string($opener)) { }
27 21 elsif ($opener eq '{') { }
17 4 elsif ($opener eq '[') { }
1233 53 5 if ($opts{'top'})
1234 34 19 unless ($parser->is_error)
1235 11 23 if (@$tokens)
1236 8 3 unless ($parser->extra_tokens_ok)
1261 2 14 if ($parser->is_string($token)) { }
1 13 elsif (ref $token) { }
1357 12 39 if ($next eq '}') { }
13 26 elsif ($next eq ',') { }
22 4 elsif ($parser->is_string($next)) { }
1376 22 0 if (defined $t0) { }
1378 18 4 if ($t0 eq ':') { }
2 2 elsif ($t0 eq ',') { }
0 2 elsif ($t0 eq '}') { }
1383 2 16 unless @$tokens
1389 3 13 if $parser->is_error
1466 10 6 if ($parser->is_string($next)) { }
4 2 elsif ($parser->is_list_opener($next)) { }
1560 12 26 if ($next eq ']') { }
1 25 elsif ($parser->is_list_opener($next)) { }
8 17 elsif ($next eq ',') { }
15 2 elsif ($parser->is_string($next)) { }
1567 0 1 unless defined $object
1582 14 1 if (@$tokens)
1587 2 12 unless ($n2 eq ',' or $n2 eq ']')
1794 35 111 if ($next eq $str->{'quote'})
1798 9 102 if ($next =~ s/^\\(.)/$1/s)
1799 6 3 if ($JSON::Relaxed::esc{$next})
1928 29 128 if ($JSON::Relaxed::structural{$chars->[0]})
1932 9 119 if ($chars->[0] =~ /\s+/s)
1936 2 117 if ($parser->is_comment_opener($chars->[0]))
1995 26 15 unless ($opts{'always_string'})
1996 13 13 if (exists $JSON::Relaxed::boolean{lc $rv})