diff --git a/src/value.rs b/src/value.rs index 3ab54f6..f65a645 100644 --- a/src/value.rs +++ b/src/value.rs @@ -226,8 +226,11 @@ impl Value { } pub fn is_true(&self) -> bool { - let s = self.eval(); - !(s == Value::Null || s == Value::False) + match self { + Value::Null | Value::False => false, + Self::BinaryOp(..) => self.eval().is_true(), + _ => true + } } pub fn unquote(self) -> Self {