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