[ruby-core:78196] [Ruby trunk Bug#12955] BigDecimal::INFINITY and BigDecimal::NAN to_json and as_json should error out similar to Float::INFINITY and Float::NAN

From: csonpatki@...
Date: 2016-11-18 15:31:10 UTC
List: ruby-core #78196
Issue #12955 has been reported by Prathamesh Sonpatki.

----------------------------------------
Bug #12955: BigDecimal::INFINITY and BigDecimal::NAN to_json and as_json should error out similar to Float::INFINITY and Float::NAN
https://bugs.ruby-lang.org/issues/12955

* Author: Prathamesh Sonpatki
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Currently, Float::INFINITY and Float::NAN error out when we try to convert them into JSON representation using `as_json` or `to_json` based on the following code from /ruby/ext/json/generator.c

~~~ c
    if (!allow_nan) {
        if (isinf(value)) {
            fbuffer_free(buffer);
            rb_raise(eGeneratorError, "%u: %"PRIsVALUE" not allowed in JSON", __LINE__, RB_OBJ_STRING(tmp));
        } else if (isnan(value)) {
            fbuffer_free(buffer);
            rb_raise(eGeneratorError, "%u: %"PRIsVALUE" not allowed in JSON", __LINE__, RB_OBJ_STRING(tmp));
        }
    }
~~~

Should same treatment be applied to BigDecimal::INFINITY and BigDecimal::NAN? 

Here is the RFC link which says that 

*Numeric values that cannot be represented as sequences of digits such as Infinity and NaN) are not permitted* 

- https://www.ietf.org/rfc/rfc4627.txt



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next