BinaryExpressions are getting replaced with a literal when both operands aren't UNKNOWN, which erroneously includes the case if one is either TRUTHY or FALSY
So for example things like these are ending up wrong:
{}==={} -> !0 (i.e. true - admittedly a bit contrived)
BinaryExpression
s are getting replaced with a literal when both operands aren'tUNKNOWN
, which erroneously includes the case if one is eitherTRUTHY
orFALSY
So for example things like these are ending up wrong:
{}==={}
->!0
(i.e.true
- admittedly a bit contrived)'translate(' + [ x, y ] + ')'
->"translate([object Object])"
'b' in {b:1}
->!1
(i.e.false
)Seems fixable by just checking both operands are definitely also not either
TRUTHY
orFALSY
- PR coming right up