diff --git a/src/pyson.js b/src/pyson.js index f775c98dbf..43aad4f2bd 100644 --- a/src/pyson.js +++ b/src/pyson.js @@ -179,7 +179,7 @@ 'd': value.d, }, context[value.v.substring(0, idx)] || {}); } - if (value.v in context) { + if ((value.v in context) && (context[value.v] !== undefined)) { return context[value.v]; } else { return value.d; diff --git a/tests/sao.js b/tests/sao.js index 5f587b7718..98a358ab96 100644 --- a/tests/sao.js +++ b/tests/sao.js @@ -102,6 +102,9 @@ "decode(Eval('test', 0))"); QUnit.strictEqual(new Sao.PYSON.Decoder().decode(eval_), 0, "decode(Eval('test', 0))"); + QUnit.strictEqual( + new Sao.PYSON.Decoder({test: undefined}).decode(eval_), 0, + "decode(Eval('test', 0))"); }); QUnit.test('PYSON Not', function() {