aboutsummaryrefslogtreecommitdiff
path: root/py/objbool.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-09-23 14:10:03 +0000
committerDamien George <damien.p.george@gmail.com>2014-09-23 14:15:45 +0000
commitd6230f62c785c6c1ef1797500617c33e24607980 (patch)
treedf12c1f20b9c22de5b25224c4bbd4e1e89cac871 /py/objbool.c
parent96e20c600f6498c403445956077f85dd2fb548aa (diff)
py: Make native emitter handle multi-compare and not/is not/not in ops.
Diffstat (limited to 'py/objbool.c')
-rw-r--r--py/objbool.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/py/objbool.c b/py/objbool.c
index e6b5230f7..47c91357f 100644
--- a/py/objbool.c
+++ b/py/objbool.c
@@ -74,9 +74,16 @@ STATIC mp_obj_t bool_unary_op(mp_uint_t op, mp_obj_t o_in) {
case MP_UNARY_OP_BOOL: return o_in;
case MP_UNARY_OP_POSITIVE: return MP_OBJ_NEW_SMALL_INT(value);
case MP_UNARY_OP_NEGATIVE: return MP_OBJ_NEW_SMALL_INT(-value);
- case MP_UNARY_OP_INVERT:
+ case MP_UNARY_OP_INVERT: return MP_OBJ_NEW_SMALL_INT(~value);
+
+ // only bool needs to implement MP_UNARY_OP_NOT
+ case MP_UNARY_OP_NOT:
default: // no other cases
- return MP_OBJ_NEW_SMALL_INT(~value);
+ if (value) {
+ return mp_const_false;
+ } else {
+ return mp_const_true;
+ }
}
}