[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>