You've already forked linux-packaging-mono
Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
157
external/referencesource/mscorlib/system/compatibilityswitches.cs
vendored
Normal file
157
external/referencesource/mscorlib/system/compatibilityswitches.cs
vendored
Normal file
@ -0,0 +1,157 @@
|
||||
// ==++==
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// ==--==
|
||||
|
||||
using System.Runtime;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace System
|
||||
{
|
||||
[FriendAccessAllowed]
|
||||
internal static class CompatibilitySwitches
|
||||
{
|
||||
private static bool s_AreSwitchesSet;
|
||||
#if FEATURE_CORECLR && !FEATURE_CORESYSTEM
|
||||
private static bool s_isAppEarlierThanSilverlight4;
|
||||
#endif //FEATURE_CORECLR && !FEATURE_CORESYSTEM
|
||||
|
||||
#if FEATURE_LEGACYNETCF
|
||||
private static bool s_isAppEarlierThanWindowsPhone8;
|
||||
private static bool s_isAppEarlierThanWindowsPhoneMango;
|
||||
#endif //FEATURE_LEGACYNETCF
|
||||
|
||||
#if !FEATURE_CORECLR
|
||||
private static bool s_isNetFx40TimeSpanLegacyFormatMode;
|
||||
private static bool s_isNetFx40LegacySecurityPolicy;
|
||||
private static bool s_isNetFx45LegacyManagedDeflateStream;
|
||||
#endif //!FEATURE_CORECLR
|
||||
|
||||
public static bool IsCompatibilityBehaviorDefined
|
||||
{
|
||||
get
|
||||
{
|
||||
return s_AreSwitchesSet;
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsCompatibilitySwitchSet(string compatibilitySwitch)
|
||||
{
|
||||
bool? result = AppDomain.CurrentDomain.IsCompatibilitySwitchSet(compatibilitySwitch);
|
||||
return (result.HasValue && result.Value);
|
||||
}
|
||||
|
||||
internal static void InitializeSwitches()
|
||||
{
|
||||
#if FEATURE_CORECLR && !FEATURE_CORESYSTEM
|
||||
s_isAppEarlierThanSilverlight4 = IsCompatibilitySwitchSet("APP_EARLIER_THAN_SL4.0");
|
||||
#endif //FEATURE_CORECLR && !FEATURE_CORESYSTEM
|
||||
|
||||
#if FEATURE_LEGACYNETCF
|
||||
s_isAppEarlierThanWindowsPhoneMango = IsCompatibilitySwitchSet("WindowsPhone_3.7.0.0");
|
||||
s_isAppEarlierThanWindowsPhone8 = s_isAppEarlierThanWindowsPhoneMango ||
|
||||
IsCompatibilitySwitchSet("WindowsPhone_3.8.0.0");
|
||||
|
||||
#endif //FEATURE_LEGACYNETCF
|
||||
|
||||
#if !FEATURE_CORECLR
|
||||
s_isNetFx40TimeSpanLegacyFormatMode = IsCompatibilitySwitchSet("NetFx40_TimeSpanLegacyFormatMode");
|
||||
s_isNetFx40LegacySecurityPolicy = IsCompatibilitySwitchSet("NetFx40_LegacySecurityPolicy");
|
||||
s_isNetFx45LegacyManagedDeflateStream = IsCompatibilitySwitchSet("NetFx45_LegacyManagedDeflateStream");
|
||||
#endif //FEATURE_CORECLR
|
||||
|
||||
s_AreSwitchesSet = true;
|
||||
}
|
||||
|
||||
public static bool IsAppEarlierThanSilverlight4
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
|
||||
#endif
|
||||
get
|
||||
{
|
||||
#if FEATURE_CORECLR && !FEATURE_CORESYSTEM
|
||||
return s_isAppEarlierThanSilverlight4;
|
||||
#else
|
||||
return false;
|
||||
#endif //FEATURE_CORECLR && !FEATURE_CORESYSTEM
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsAppEarlierThanWindowsPhone8
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
|
||||
#endif
|
||||
get
|
||||
{
|
||||
#if FEATURE_LEGACYNETCF
|
||||
return s_isAppEarlierThanWindowsPhone8;
|
||||
#else
|
||||
return false;
|
||||
#endif //FEATURE_LEGACYNETCF
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsAppEarlierThanWindowsPhoneMango
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
|
||||
#endif
|
||||
get
|
||||
{
|
||||
#if FEATURE_LEGACYNETCF
|
||||
return s_isAppEarlierThanWindowsPhoneMango;
|
||||
#else
|
||||
return false;
|
||||
#endif //FEATURE_LEGACYNETCF
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsNetFx40TimeSpanLegacyFormatMode
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
|
||||
#endif
|
||||
get
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
return s_isNetFx40TimeSpanLegacyFormatMode;
|
||||
#else
|
||||
return false;
|
||||
#endif //!FEATURE_CORECLR
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsNetFx40LegacySecurityPolicy
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
|
||||
#endif
|
||||
get
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
return s_isNetFx40LegacySecurityPolicy;
|
||||
#else
|
||||
return false;
|
||||
#endif //!FEATURE_CORECLR
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsNetFx45LegacyManagedDeflateStream
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
|
||||
#endif
|
||||
get
|
||||
{
|
||||
#if !FEATURE_CORECLR
|
||||
return s_isNetFx45LegacyManagedDeflateStream;
|
||||
#else
|
||||
return false;
|
||||
#endif //!FEATURE_CORECLR
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user