diff --git a/lib/json/truffle_ruby/generator.rb b/lib/json/truffle_ruby/generator.rb index 1c6d99f8..aa281eed 100644 --- a/lib/json/truffle_ruby/generator.rb +++ b/lib/json/truffle_ruby/generator.rb @@ -413,7 +413,7 @@ def generate(obj, anIO = nil) buf << obj.to_json(self) end when Integer - buf << String(obj) + buf << obj.to_s when Symbol if @strict fast_serialize_string(obj.name, buf) @@ -652,9 +652,7 @@ def json_transform(state) module Integer # Returns a JSON string representation for this Integer number. - def to_json(*) - String(self) - end + def to_json(*) to_s end end module Float diff --git a/test/json/json_generator_test.rb b/test/json/json_generator_test.rb index 00960dff..0eb85a82 100755 --- a/test/json/json_generator_test.rb +++ b/test/json/json_generator_test.rb @@ -504,10 +504,14 @@ def to_s end alias_method :to_s, :to_s end - case RUBY_PLATFORM - when "java" + case RUBY_ENGINE + when "jruby" assert_equal bignum_to_s, JSON.generate(bignum) - else + when "truffleruby" + assert_raise(NoMethodError) do + JSON.generate(bignum) + end + when "ruby" assert_raise(TypeError) do JSON.generate(bignum) end