diff options
-rw-r--r-- | ext/json/ext/generator/generator.c | 4 | ||||
-rw-r--r-- | lib/json/pure/generator.rb | 4 | ||||
-rwxr-xr-x | tests/test_json_generate.rb | 6 |
3 files changed, 7 insertions, 7 deletions
diff --git a/ext/json/ext/generator/generator.c b/ext/json/ext/generator/generator.c index c6c63c1..9bcd580 100644 --- a/ext/json/ext/generator/generator.c +++ b/ext/json/ext/generator/generator.c @@ -315,14 +315,14 @@ static VALUE mFloat_to_json(int argc, VALUE *argv, VALUE self) rb_scan_args(argc, argv, "01*", &Vstate, &rest); if (!NIL_P(Vstate)) Data_Get_Struct(Vstate, JSON_Generator_State, state); if (isinf(value)) { - if (!state || state->allow_nan) { + if (state && state->allow_nan) { result = rb_funcall(self, i_to_s, 0); } else { tmp = rb_funcall(self, i_to_s, 0); rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp)); } } else if (isnan(value)) { - if (!state || state->allow_nan) { + if (state && state->allow_nan) { result = rb_funcall(self, i_to_s, 0); } else { tmp = rb_funcall(self, i_to_s, 0); diff --git a/lib/json/pure/generator.rb b/lib/json/pure/generator.rb index d51316e..2b7eeb7 100644 --- a/lib/json/pure/generator.rb +++ b/lib/json/pure/generator.rb @@ -351,13 +351,13 @@ module JSON def to_json(state = nil, *) case when infinite? - if !state || state.allow_nan? + if state && state.allow_nan? to_s else raise GeneratorError, "#{self} not allowed in JSON" end when nan? - if !state || state.allow_nan? + if state && state.allow_nan? to_s else raise GeneratorError, "#{self} not allowed in JSON" diff --git a/tests/test_json_generate.rb b/tests/test_json_generate.rb index bbb75ba..ae3ce0e 100755 --- a/tests/test_json_generate.rb +++ b/tests/test_json_generate.rb @@ -89,17 +89,17 @@ EOT def test_allow_nan assert_raises(GeneratorError) { generate([JSON::NaN]) } assert_equal '[NaN]', generate([JSON::NaN], :allow_nan => true) - assert_equal '[NaN]', fast_generate([JSON::NaN]) + assert_raises(GeneratorError) { fast_generate([JSON::NaN]) } assert_raises(GeneratorError) { pretty_generate([JSON::NaN]) } assert_equal "[\n NaN\n]", pretty_generate([JSON::NaN], :allow_nan => true) assert_raises(GeneratorError) { generate([JSON::Infinity]) } assert_equal '[Infinity]', generate([JSON::Infinity], :allow_nan => true) - assert_equal '[Infinity]', fast_generate([JSON::Infinity]) + assert_raises(GeneratorError) { fast_generate([JSON::Infinity]) } assert_raises(GeneratorError) { pretty_generate([JSON::Infinity]) } assert_equal "[\n Infinity\n]", pretty_generate([JSON::Infinity], :allow_nan => true) assert_raises(GeneratorError) { generate([JSON::MinusInfinity]) } assert_equal '[-Infinity]', generate([JSON::MinusInfinity], :allow_nan => true) - assert_equal '[-Infinity]', fast_generate([JSON::MinusInfinity]) + assert_raises(GeneratorError) { fast_generate([JSON::MinusInfinity]) } assert_raises(GeneratorError) { pretty_generate([JSON::MinusInfinity]) } assert_equal "[\n -Infinity\n]", pretty_generate([JSON::MinusInfinity], :allow_nan => true) end |