diff --git a/src/pyson.js b/src/pyson.js index 889a07985b..a49e0e9ff0 100644 --- a/src/pyson.js +++ b/src/pyson.js @@ -249,7 +249,11 @@ }); Sao.PYSON.Equal.eval_ = function(value, context) { - return value.s1 == value.s2; + if (value.s1 instanceof Array && value.s2 instanceof Array) { + return Sao.common.compare(value.s1, value.s2); + } else { + return value.s1 == value.s2; + } }; Sao.PYSON.Greater = Sao.class_(Sao.PYSON.PYSON, { diff --git a/tests/sao.js b/tests/sao.js index b846389935..11fa6d16f2 100644 --- a/tests/sao.js +++ b/tests/sao.js @@ -312,7 +312,17 @@ eval_ = new Sao.PYSON.Encoder().encode( new Sao.PYSON.Equal('foo', 'bar')); QUnit.strictEqual(new Sao.PYSON.Decoder().decode(eval_), false, - "decode(Equal('test', 'test'))"); + "decode(Equal('foo', 'bar'))"); + + eval_ = new Sao.PYSON.Encoder().encode( + new Sao.PYSON.Equal(['test'], ['test'])); + QUnit.strictEqual(new Sao.PYSON.Decoder().decode(eval_), true, + "decode(Equal(['test'], ['test']))"); + + eval_ = new Sao.PYSON.Encoder().encode( + new Sao.PYSON.Equal(['foo'], ['bar'])); + QUnit.strictEqual(new Sao.PYSON.Decoder().decode(eval_), false, + "decode(Equal(['foo'], ['bar']))"); }); QUnit.test('PYSON Greater', function() {