Actions
Bug #12955
closedBigDecimal::INFINITY and BigDecimal::NAN to_json and as_json should error out similar to Float::INFINITY and Float::NAN
Bug #12955:
BigDecimal::INFINITY and BigDecimal::NAN to_json and as_json should error out similar to Float::INFINITY and Float::NAN
Description
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
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
Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
Actions