| line |
true |
false |
branch |
|
39
|
0 |
71 |
if defined $ver |
|
40
|
70 |
71 |
unless $load |
|
41
|
70 |
71 |
unless $load |
|
47
|
1 |
70 |
if ($class = $ENV{'PERL_BSON_BACKEND'}) { } |
|
|
0 |
70 |
elsif (eval {
do {
_try_load($class = 'BSON::XS')
}
} or do {
push @errs, $@;
0
}) { } |
|
|
70 |
0 |
elsif (eval {
do {
_try_load($class = 'BSON::PP')
}
} or do {
push @errs, $@;
0
}) { } |
|
49
|
0 |
1 |
if (my $err = $@) |
|
53
|
0 |
1 |
unless ($class->can('_encode_bson') and $class->can('_decode_bson')) |
|
258
|
763 |
0 |
unless defined $self->{'wrap_dbrefs'} |
|
259
|
761 |
2 |
unless defined $self->{'invalid_chars'} |
|
294
|
1 |
2493 |
unless $type |
|
296
|
2 |
2491 |
if ($type eq 'Regexp' or not &blessed($document) || $type eq 'HASH' || $type eq 'ARRAY') |
|
302
|
1 |
2490 |
if $type eq 'ARRAY' |
|
305
|
739 |
1752 |
$options ? : |
|
310
|
12 |
2479 |
if ($@ or $merged_opts->{'max_length'} and length $bson > $merged_opts->{'max_length'}) |
|
312
|
0 |
12 |
if ($merged_opts->{'error_callback'}) { } |
|
347
|
698 |
1461 |
$options ? : |
|
349
|
1 |
2158 |
if ($merged_opts->{'max_length'} and length $string > $merged_opts->{'max_length'}) |
|
351
|
0 |
1 |
if ($merged_opts->{'error_callback'}) { } |
|
360
|
79 |
2079 |
if ($@) |
|
361
|
1 |
78 |
if ($merged_opts->{'error_callback'}) { } |
|
384
|
0 |
0 |
if (@args == 1 and ref $args[0] eq 'HASH') |
|
423
|
0 |
0 |
if (substr($k, 0, 1) eq '$') |
|
427
|
0 |
0 |
$v ? : |
|
|
0 |
0 |
$type =~ /$bools_re/ ? : |
|
|
0 |
0 |
$type eq 'ARRAY' ? : |
|
|
0 |
0 |
$type eq 'HASH' ? : |
|
469
|
6 |
3661 |
unless (defined $data) |
|
473
|
1766 |
1895 |
if (&blessed($data) and $data->can('TO_JSON')) |
|
478
|
67 |
1828 |
unless (ref $data) |
|
480
|
25 |
42 |
if (&looks_like_number($data)) |
|
481
|
16 |
9 |
if ($ENV{'BSON_EXTJSON_RELAXED'}) |
|
485
|
9 |
0 |
if ($data =~ /\A-?[0-9_]+\z/) { } |
|
486
|
9 |
0 |
if ($data <= $max_int32) { } |
|
494
|
0 |
0 |
if $data =~ /$is_inf/ |
|
496
|
0 |
0 |
if $data =~ /$is_ninf/ |
|
498
|
0 |
0 |
if $data =~ /$is_nan/ |
|
509
|
0 |
1828 |
if (&boolean::isBoolean($data)) |
|
513
|
1812 |
16 |
if (ref $data eq 'HASH') |
|
521
|
10 |
6 |
if (ref $data eq 'ARRAY') |
|
529
|
4 |
2 |
if (&blessed($data) and $data->isa('JSON::PP::Boolean')) |
|
533
|
2 |
0 |
if (&blessed($data) and $data->isa('Math::BigInt') || $data->isa('Math::BigFloat')) |
|
577
|
2101 |
76 |
if (ref $data eq 'HASH') |
|
579
|
26 |
2075 |
if (exists $data->{'$oid'}) |
|
583
|
38 |
2037 |
if (exists $data->{'$numberInt'}) |
|
587
|
27 |
2010 |
if (exists $data->{'$numberLong'}) |
|
596
|
24 |
1986 |
if (exists $data->{'$binary'}) |
|
598
|
0 |
24 |
if (exists $data->{'$type'}) { } |
|
613
|
17 |
1969 |
if (exists $data->{'$date'}) |
|
615
|
15 |
2 |
ref $v eq 'HASH' ? : |
|
619
|
4 |
1965 |
if (exists $data->{'$minKey'}) |
|
623
|
4 |
1961 |
if (exists $data->{'$maxKey'}) |
|
627
|
10 |
1951 |
if (exists $data->{'$timestamp'}) |
|
634
|
0 |
1951 |
if (exists $data->{'$regex'} and not ref $data->{'$regex'}) |
|
637
|
0 |
0 |
exists $data->{'$options'} ? : |
|
641
|
24 |
1927 |
if (exists $data->{'$regularExpression'}) |
|
645
|
24 |
0 |
exists $value->{'options'} ? : |
|
649
|
20 |
1907 |
if (exists $data->{'$code'}) |
|
653
|
12 |
8 |
exists $data->{'$scope'} ? : |
|
659
|
2 |
1905 |
if (exists $data->{'$undefined'}) |
|
663
|
8 |
1897 |
if (exists $data->{'$dbPointer'}) |
|
666
|
8 |
0 |
if ref $id eq 'HASH' |
|
673
|
10 |
1887 |
if (exists $data->{'$ref'}) |
|
675
|
10 |
0 |
if ref $id eq 'HASH' |
|
684
|
1823 |
64 |
if (exists $data->{'$numberDecimal'}) |
|
690
|
28 |
36 |
if (exists $data->{'$numberDouble'}) |
|
691
|
0 |
0 |
if ($data->{'$numberDouble'} eq '-0' and $] lt '5.014' and 1) |
|
697
|
12 |
24 |
if (exists $data->{'$symbol'}) |
|
708
|
10 |
66 |
if (ref $data eq 'ARRAY') |
|
711
|
16 |
0 |
ref $value ? : |
|
747
|
0 |
740 |
if (defined $_[0] and $_[0] eq 'BSON' || &blessed($_[0]) && $_[0]->isa('BSON')) |
|
751
|
20 |
720 |
unless defined $CODEC |
|
752
|
101 |
639 |
if (@_ == 1 and ref $_[0] eq 'HASH') { } |
|
|
639 |
0 |
elsif (@_ % 2 == 0) { } |
|
764
|
0 |
698 |
if (defined $_[0] and $_[0] eq 'BSON' || &blessed($_[0]) && $_[0]->isa('BSON')) |
|
768
|
18 |
680 |
unless defined $CODEC |
|
770
|
0 |
698 |
if (@_ == 1 and ref $_[0] eq 'HASH') { } |
|
|
698 |
0 |
elsif (@_ % 2 == 0) { } |
|
780
|
1 |
697 |
if exists $args->{'ixhash'} and not exists $args->{'ordered'} |
|
792
|
0 |
0 |
if (exists $hash->{'$oid'}) |
|
796
|
0 |
0 |
if (exists $hash->{'$numberInt'}) |
|
800
|
0 |
0 |
if (exists $hash->{'$numberLong'}) |
|
809
|
0 |
0 |
if (exists $hash->{'$binary'}) |
|
817
|
0 |
0 |
if (exists $hash->{'$date'}) |
|
819
|
0 |
0 |
ref $v eq 'HASH' ? : |
|
823
|
0 |
0 |
if (exists $hash->{'$minKey'}) |
|
827
|
0 |
0 |
if (exists $hash->{'$maxKey'}) |
|
831
|
0 |
0 |
if (exists $hash->{'$timestamp'}) |
|
838
|
0 |
0 |
if (exists $hash->{'$regex'}) |
|
841
|
0 |
0 |
exists $hash->{'$options'} ? : |
|
845
|
0 |
0 |
if (exists $hash->{'$code'}) |
|
848
|
0 |
0 |
exists $hash->{'$scope'} ? : |
|
852
|
0 |
0 |
if (exists $hash->{'$undefined'}) |
|
856
|
0 |
0 |
if (exists $hash->{'$ref'}) |
|
858
|
0 |
0 |
if ref $id eq 'HASH' |
|
862
|
0 |
0 |
if (exists $hash->{'$numberDecimal'}) |
|
868
|
0 |
0 |
if (exists $hash->{'$numberDouble'}) |
|
869
|
0 |
0 |
if ($hash->{'$numberDouble'} eq '-0' and $] lt '5.014' and 1) |
|
875
|
0 |
0 |
if (exists $hash->{'$symbol'}) |
|
884
|
0 |
0 |
if (@$array) |
|
887
|
0 |
0 |
ref $v eq 'ARRAY' ? : |
|
|
0 |
0 |
ref $v eq 'HASH' ? : |
|
907
|
2 |
0 |
if (substr($date, -1, 1) eq 'Z') |
|
911
|
2 |
0 |
if ($date =~ /\A$iso8601_re\z/) { } |
|
913
|
0 |
2 |
if (defined $z and length $z) |
|
915
|
0 |
0 |
if length $z < 5 |
|
919
|
0 |
0 |
$zd eq '-' ? : |