           if Utils.isBoolean(x)
             true_count++ if !!x
             flag = true
+          else if x instanceof FormulaError
+            throw x
 
       else
         x = @getValue(arg)
+        if x instanceof FormulaError
+          throw x
         unless Utils.isBoolean(x)
           @error(FormulaError.VALUE)
         true_count++ if !!x

          if Utils.isBoolean(x)
            res &&= !!x
            flag = true

      else
        x = @getValue(arg)
        unless Utils.isBoolean(x)
          @error(FormulaError.VALUE)
        res &&= !!x

          if Utils.isBoolean(x)
            res ||= !!x
            flag = true
          else if x instanceof FormulaError
            throw x

      else
        x = @getValue(arg)
        if x instanceof FormulaError
          throw x
        unless Utils.isBoolean(x)
          @error(FormulaError.VALUE)
        res ||= !!x
