Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,13 @@ public override double Read(ref Utf8JsonReader reader, Type typeToConvert, JsonS
return reader.GetDouble();
}

#if !NETFRAMEWORK
if (options.NumberHandling.HasFlag(JsonNumberHandling.AllowNamedFloatingPointLiterals))
#else
// Optimize hot-path for performance since `HasFlag` causes boxing on .NET Framework.
if (((int)options.NumberHandling & (int)JsonNumberHandling.AllowNamedFloatingPointLiterals) ==
(int)JsonNumberHandling.AllowNamedFloatingPointLiterals)
#endif
{
if (reader.ValueTextEquals(NaN))
{
Expand All @@ -57,7 +63,13 @@ public override double Read(ref Utf8JsonReader reader, Type typeToConvert, JsonS
}
}

#if !NETFRAMEWORK
if (!options.NumberHandling.HasFlag(JsonNumberHandling.AllowReadingFromString))
#else
// Optimize hot-path for performance since `HasFlag` causes boxing on .NET Framework.
if (((int)options.NumberHandling & (int)JsonNumberHandling.AllowReadingFromString) !=
(int)JsonNumberHandling.AllowReadingFromString)
#endif
{
return reader.GetDouble();
}
Expand All @@ -71,7 +83,13 @@ public override double Read(ref Utf8JsonReader reader, Type typeToConvert, JsonS

public override void Write(Utf8JsonWriter writer, double value, JsonSerializerOptions options)
{
#if !NETFRAMEWORK
if (options.NumberHandling.HasFlag(JsonNumberHandling.AllowNamedFloatingPointLiterals))
#else
// Optimize hot-path for performance since `HasFlag` causes boxing on .NET Framework.
if (((int)options.NumberHandling & (int)JsonNumberHandling.AllowNamedFloatingPointLiterals) ==
(int)JsonNumberHandling.AllowNamedFloatingPointLiterals)
#endif
{
if (double.IsNaN(value))
{
Expand All @@ -92,7 +110,13 @@ public override void Write(Utf8JsonWriter writer, double value, JsonSerializerOp
}
}

#if !NETFRAMEWORK
if (options.NumberHandling.HasFlag(JsonNumberHandling.WriteAsString))
#else
// Optimize hot-path for performance since `HasFlag` causes boxing on .NET Framework.
if (((int)options.NumberHandling & (int)JsonNumberHandling.WriteAsString) ==
(int)JsonNumberHandling.WriteAsString)
#endif
{
throw new NotImplementedException("'JsonNumberHandling.WriteAsString' is currently not supported.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,13 @@ public override float Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSe
return reader.GetSingle();
}

#if !NETFRAMEWORK
if (options.NumberHandling.HasFlag(JsonNumberHandling.AllowNamedFloatingPointLiterals))
#else
// Optimize hot-path for performance since `HasFlag` causes boxing on .NET Framework.
if (((int)options.NumberHandling & (int)JsonNumberHandling.AllowNamedFloatingPointLiterals) ==
(int)JsonNumberHandling.AllowNamedFloatingPointLiterals)
#endif
{
if (reader.ValueTextEquals(NaN))
{
Expand All @@ -57,7 +63,13 @@ public override float Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSe
}
}

#if !NETFRAMEWORK
if (!options.NumberHandling.HasFlag(JsonNumberHandling.AllowReadingFromString))
#else
// Optimize hot-path for performance since `HasFlag` causes boxing on .NET Framework.
if (((int)options.NumberHandling & (int)JsonNumberHandling.AllowReadingFromString) !=
(int)JsonNumberHandling.AllowReadingFromString)
#endif
{
return reader.GetSingle();
}
Expand All @@ -71,7 +83,13 @@ public override float Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSe

public override void Write(Utf8JsonWriter writer, float value, JsonSerializerOptions options)
{
#if !NETFRAMEWORK
if (options.NumberHandling.HasFlag(JsonNumberHandling.AllowNamedFloatingPointLiterals))
#else
// Optimize hot-path for performance since `HasFlag` causes boxing on .NET Framework.
if (((int)options.NumberHandling & (int)JsonNumberHandling.AllowNamedFloatingPointLiterals) ==
(int)JsonNumberHandling.AllowNamedFloatingPointLiterals)
#endif
{
if (float.IsNaN(value))
{
Expand All @@ -92,7 +110,13 @@ public override void Write(Utf8JsonWriter writer, float value, JsonSerializerOpt
}
}

#if !NETFRAMEWORK
if (options.NumberHandling.HasFlag(JsonNumberHandling.WriteAsString))
#else
// Optimize hot-path for performance since `HasFlag` causes boxing on .NET Framework.
if (((int)options.NumberHandling & (int)JsonNumberHandling.WriteAsString) ==
(int)JsonNumberHandling.WriteAsString)
#endif
{
throw new NotImplementedException("'JsonNumberHandling.WriteAsString' is currently not supported.");
}
Expand Down