summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/src/json/ext/GeneratorState.java3
-rwxr-xr-xtests/test_json_generate.rb1
2 files changed, 3 insertions, 1 deletions
diff --git a/java/src/json/ext/GeneratorState.java b/java/src/json/ext/GeneratorState.java
index 658d6d0..3065307 100644
--- a/java/src/json/ext/GeneratorState.java
+++ b/java/src/json/ext/GeneratorState.java
@@ -263,7 +263,8 @@ public class GeneratorState extends RubyObject {
if (getMetaClass().isMethodBound(name, true)) {
return send(context, vName, Block.NULL_BLOCK);
} else {
- return getInstanceVariables().getInstanceVariable("@" + name);
+ IRubyObject value = getInstanceVariables().getInstanceVariable("@" + name);
+ return value == null ? context.nil : value;
}
}
diff --git a/tests/test_json_generate.rb b/tests/test_json_generate.rb
index 5947bf6..978c625 100755
--- a/tests/test_json_generate.rb
+++ b/tests/test_json_generate.rb
@@ -276,6 +276,7 @@ EOT
def test_hash_likeness_set_symbol
state = JSON.state.new
assert_equal nil, state[:foo]
+ assert_equal nil.class, state[:foo].class
assert_equal nil, state['foo']
state[:foo] = :bar
assert_equal :bar, state[:foo]