From 8eea66d9d76ead66ba7bdeb08e8490b0870169b8 Mon Sep 17 00:00:00 2001
From: Magnolia K <[email protected]>
Date: Sat, 21 Jan 2017 13:33:56 +0900
Subject: [PATCH] Fixed deprecated warning

Incorporate the fixes made in Mojo::JSON below.

https://github.com/kraih/mojo/commit/d76e408bc98bda105466b208e71224d99cb88243
---
lib/JSON/Tiny.pm | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/lib/JSON/Tiny.pm b/lib/JSON/Tiny.pm
index fcf7470..af0451c 100644
--- a/lib/JSON/Tiny.pm
+++ b/lib/JSON/Tiny.pm
@@ -10,6 +10,7 @@ use Carp 'croak';
use Exporter 'import';
use Scalar::Util 'blessed';
use Encode ();
+use B;

our $VERSION = '0.56';
our @EXPORT_OK = qw(decode_json encode_json false from_json j to_json true);
@@ -265,16 +266,8 @@ sub _encode_value {

  # Number (bitwise operators change behavior based on the internal value type)

-  # "0" & $x will modify the flags on the "0" on perl < 5.14, so use a copy
-  my $zero = "0";
-  # "0" & $num -> 0. "0" & "" -> "". "0" & $string -> a character.
-  # this maintains the internal type but speeds up the xor below.
-  my $check = $zero & $value;
  return $value
-    if length $check
-    # 0 ^ itself          -> 0    (false)
-    # $character ^ itself -> "\0" (true)
-    && !($check ^ $check)
+    if B::svref_2object(\$value)->FLAGS & (B::SVp_IOK | B::SVp_NOK)
    # filter out "upgraded" strings whose numeric form doesn't strictly match
    && 0 + $value eq $value
    # filter out inf and nan
--
2.1.2