@@ -68,6 +68,10 @@ func evalInfixExpression(operator string, left object.Object, right object.Objec
switch {
case left.Type() == object.IntegerObj && right.Type() == object.IntegerObj:
return evalIntegerInfixExpression(operator, left, right)
+ case operator == "==":
+ return nativeBooleanObject(left == right)
+ case operator == "!=":
+ return nativeBooleanObject(left != right)
default:
return NULL
}
@@ -40,6 +40,9 @@ func TestEvalBooleanExpression(t *testing.T) {
{"1 != 1", false},
{"1 == 2", false},
{"1 != 2", true},
+ {"true == true", true},
+ {"false == false", true},
+ {"(1 < 2) == true", true},
for _, tt := range tests {