Преглед изворни кода

Fix conditional compilation checks to account for NET 6.0 (#1563)

Marko Lahma пре 2 година
родитељ
комит
ad4378bc82

+ 1 - 1
Jint/Engine.cs

@@ -1545,7 +1545,7 @@ namespace Jint
                 return;
             }
 
-#if NETSTANDARD2_1_OR_GREATER
+#if SUPPORTS_WEAK_TABLE_CLEAR
             _objectWrapperCache.Clear();
 #else
             // we can expect that reflection is OK as we've been generating object wrappers already

+ 4 - 0
Jint/Jint.csproj

@@ -11,6 +11,10 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
 
+  <PropertyGroup Condition=" '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'netstandard2.1' ">
+    <DefineConstants>$(DefineConstants);SUPPORTS_SPAN_PARSE;SUPPORTS_WEAK_TABLE_ADD_OR_UPDATE;SUPPORTS_WEAK_TABLE_CLEAR</DefineConstants>
+  </PropertyGroup>
+
   <ItemGroup>
     <PackageReference Include="Esprima" Version="3.0.0-rc-02" />
     <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="all" />

+ 1 - 1
Jint/Native/Global/GlobalObject.cs

@@ -332,7 +332,7 @@ namespace Jint.Native.Global
 
             // we should now have proper input part
 
-#if NETSTANDARD2_1_OR_GREATER
+#if SUPPORTS_SPAN_PARSE
             var substring = trimmedString.AsSpan(0, i);
 #else
             var substring = trimmedString.Substring(0, i);

+ 1 - 1
Jint/Native/String/StringConstructor.cs

@@ -60,7 +60,7 @@ namespace Jint.Native.String
                 return JsString.Create((char) TypeConverter.ToUint16(arguments[0]));
             }
 
-#if NETSTANDARD2_1_OR_GREATER
+#if SUPPORTS_SPAN_PARSE
             var elements = length < 512 ? stackalloc char[length] : new char[length];
 #else
             var elements = new char[length];

+ 1 - 1
Jint/Native/WeakMap/WeakMapInstance.cs

@@ -31,7 +31,7 @@ internal sealed class WeakMapInstance : ObjectInstance
             ExceptionHelper.ThrowTypeError(_engine.Realm, "WeakMap key must be an object, got " + key);
         }
 
-#if NETSTANDARD2_1_OR_GREATER
+#if SUPPORTS_WEAK_TABLE_ADD_OR_UPDATE
          _table.AddOrUpdate(key, value);
 #else
         _table.Remove(key);

+ 1 - 1
Jint/Native/WeakSet/WeakSetInstance.cs

@@ -31,7 +31,7 @@ internal sealed class WeakSetInstance : ObjectInstance
             ExceptionHelper.ThrowTypeError(_engine.Realm, "WeakSet value must be an object or symbol, got " + value);
         }
 
-#if NETSTANDARD2_1_OR_GREATER
+#if SUPPORTS_WEAK_TABLE_ADD_OR_UPDATE
         _table.AddOrUpdate(value, Undefined);
 #else
         _table.Remove(value);

+ 1 - 1
Jint/Runtime/Interop/TypeResolver.cs

@@ -341,7 +341,7 @@ namespace Jint.Runtime.Interop
 
                 if (equals && x.Length > 1)
                 {
-#if NETSTANDARD2_1_OR_GREATER
+#if SUPPORTS_SPAN_PARSE
                     equals = x.AsSpan(1).SequenceEqual(y.AsSpan(1));
 #else
                     equals = x.Substring(1) == y.Substring(1);

+ 1 - 1
Jint/Runtime/TypeConverter.cs

@@ -695,7 +695,7 @@ namespace Jint.Runtime
                 if (str.StartsWith("0x", StringComparison.OrdinalIgnoreCase))
                 {
                     // we get better precision if we don't hit floating point parsing that is performed by Esprima
-#if NETSTANDARD2_1_OR_GREATER
+#if SUPPORTS_SPAN_PARSE
                     var source = str.AsSpan(2);
 #else
                     var source = str.Substring(2);