diff --git a/src/pyson.js b/src/pyson.js index 266ec882bf..21ac3ac734 100644 --- a/src/pyson.js +++ b/src/pyson.js @@ -218,6 +218,8 @@ value.v.second() || value.v.millisecond()); } else if (moment.isDuration(value.v)) { return Boolean(value.v.valueOf()); + } else if (value.v instanceof Number) { + return Boolean(value.v.valueOf()); } else if (value.v instanceof Object) { return !jQuery.isEmptyObject(value.v); } else { diff --git a/tests/sao.js b/tests/sao.js index 6b00031245..194f90f5f9 100644 --- a/tests/sao.js +++ b/tests/sao.js @@ -173,6 +173,10 @@ .decode(eval_), false, "decode(Bool(Sao.TimeDelta()))"); QUnit.strictEqual(new Sao.PYSON.Decoder({value: Sao.TimeDelta(1)}) .decode(eval_), true, "decode(Bool(Sao.TimeDelta(1)))"); + QUnit.strictEqual(new Sao.PYSON.Decoder({value: new Sao.Decimal(0)}) + .decode(eval_), false, "decode(Bool(Sao.Decimal(0)))"); + QUnit.strictEqual(new Sao.PYSON.Decoder({value: new Sao.Decimal(1)}) + .decode(eval_), true, "decode(Bool(Sao.Decimal(1)))"); QUnit.strictEqual(new Sao.PYSON.Bool('test').toString(), "Bool(\"test\")");