async function evaluateBooleanExpression(lhs, evalrhs, op) {
        var result;

        var lBool = boolize(lhs);

        switch (op) {
            case 'and':
                result = lBool && boolize(await evalrhs());
                break;
            case 'or':
                result = lBool || boolize(await evalrhs());
                break;
        }
        return result;
    }
Evaluate boolean expression against input data
@param {Object} lhs - LHS value
@param {Function} evalrhs - function to evaluate RHS value
@param {Object} op - opcode
@returns {*} Result