internal override Object GetDefaultValue(PreferredType preferred_type)
{
if (this.GetParent() is LenientDatePrototype)
{
return(base.GetDefaultValue(preferred_type));
}
if (preferred_type == PreferredType.String || preferred_type == PreferredType.Either)
{
if (!this.noExpando)
{
Object field = this.NameTable["toString"];
if (field != null)
{
return(base.GetDefaultValue(preferred_type));
}
}
return(DatePrototype.toString(this));
}
else if (preferred_type == PreferredType.LocaleString)
{
if (!this.noExpando)
{
Object field = this.NameTable["toLocaleString"];
if (field != null)
{
return(base.GetDefaultValue(preferred_type));
}
}
return(DatePrototype.toLocaleString(this));
}
else
{
if (!this.noExpando)
{
Object field = this.NameTable["valueOf"];
if (field == null && preferred_type == PreferredType.Either)
{
field = this.NameTable["toString"];
}
if (field != null)
{
return(base.GetDefaultValue(preferred_type));
}
}
return(this.value);
}
}