internal override Value OrBool(BooleanValue value)
 {
     return(new Undefined());
 }
 internal override Value IsEqualToBool(BooleanValue value)
 {
     return(new Undefined());
 }
 internal virtual Value IsEqualToBool(BooleanValue value)
 {
     throw new InvalidOperationException(CreateMessage(Operation.EqualTo, value, this));
 }
 internal virtual Value OrBool(BooleanValue value)
 {
     throw new InvalidOperationException();
 }
 internal override Value OrBool(BooleanValue value)
 {
     return(new BooleanValue(value.Val || this.Val));
 }
 internal override Value IsNotEqualToBool(BooleanValue value)
 {
     return(new BooleanValue(this.Val != value.Val));
 }
 internal override Value AndBool(BooleanValue value)
 {
     return(new BooleanValue(this.Val && value.Val));
 }