From: csonpatki@... Date: 2016-11-18T15:31:10+00:00 Subject: [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 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: