                 debug.log -> "operator = '#{n.operator}'"
                 result = @createAlloca @currentFunction, types.EjsValue, "result_#{n.operator}"
 
-                left_visited = @visit n.left
-                cond_truthy = @createCall @ejs_runtime.truthy, [left_visited], "cond_truthy"
-
                 insertBlock = ir.getInsertBlock()
                 insertFunc = insertBlock.parent
         

                else_bb  = new llvm.BasicBlock "else", insertFunc if n.alternate?
                merge_bb = new llvm.BasicBlock "merge", insertFunc

                # we invert the test here - check if the condition is false/0
                cmp = ir.createICmpEq cond_truthy, consts.false(), "cmpresult"
                ir.createCondBr cmp, (if else_bb? then else_bb else merge_bb), then_bb

                @doInsideBlock then_bb, =>
                        then_val = @visit n.consequent


                @doInsideBlock test_bb, =>
                        if n.test
                                @generateCondBr n.test, body_bb, merge_bb
                        else
                                ir.createBr body_bb

