Forráskód Böngészése

Upgrade to latest test262 suite and fix issues (#1304)

Marko Lahma 2 éve
szülő
commit
700634143b

+ 1 - 1
Jint.Tests.CommonScripts/Jint.Tests.CommonScripts.csproj

@@ -17,7 +17,7 @@
 
   <ItemGroup>
     <PackageReference Include="GitHubActionsTestLogger" Version="2.0.1" PrivateAssets="all" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
     <PackageReference Include="NUnit" Version="3.13.3" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
   </ItemGroup>

+ 2 - 2
Jint.Tests.PublicInterface/Jint.Tests.PublicInterface.csproj

@@ -23,10 +23,10 @@
   <ItemGroup>
     <PackageReference Include="Flurl.Http.Signed" Version="3.2.0" />
     <PackageReference Include="GitHubActionsTestLogger" Version="2.0.1" PrivateAssets="all" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
     <PackageReference Include="MongoDB.Bson.signed" Version="2.14.1" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
-    <PackageReference Include="xunit" Version="2.4.1" />
+    <PackageReference Include="xunit" Version="2.4.2" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
   </ItemGroup>
 

+ 2 - 2
Jint.Tests.Test262/Jint.Tests.Test262.csproj

@@ -17,10 +17,10 @@
 
   <ItemGroup>
     <PackageReference Include="GitHubActionsTestLogger" Version="2.0.1" PrivateAssets="all" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
     <PackageReference Include="NUnit" Version="3.13.3" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
-    <PackageReference Include="Test262Harness" Version="0.0.17" />
+    <PackageReference Include="Test262Harness" Version="0.0.22" />
   </ItemGroup>
 
   <ItemGroup>

+ 5 - 1
Jint.Tests.Test262/Test262Harness.settings.json

@@ -1,10 +1,11 @@
 {
-  "SuiteGitSha": "28b31c0bf1960878abb36ab8597a0cae224a684d",
+  "SuiteGitSha": "8565eea8be06eee720b9af42235d1ecf5df0dc5f",
   //"SuiteDirectory": "//mnt/c/work/test262",
   "TargetPath": "./Generated",
   "Namespace": "Jint.Tests.Test262",
   "Parallel": true,
   "ExcludedFeatures": [
+    "array-grouping",
     "async-functions",
     "async-iteration",
     "Atomics",
@@ -15,15 +16,18 @@
     "class-static-fields-private",
     "class-static-fields-public",
     "class-static-methods-private",
+    "decorators",
     "FinalizationRegistry",
     "generators",
     "import-assertions",
     "Promise.allSettled",
     "Promise.any",
+    "regexp-duplicate-named-groups",
     "regexp-match-indices",
     "regexp-named-groups",
     "regexp-lookbehind",
     "regexp-unicode-property-escapes",
+    "regexp-v-flag",
     "resizable-arraybuffer",
     "SharedArrayBuffer",
     "tail-call-optimization",

+ 2 - 2
Jint.Tests/Jint.Tests.csproj

@@ -26,10 +26,10 @@
   <ItemGroup>
     <PackageReference Include="Flurl.Http.Signed" Version="3.2.0" />
     <PackageReference Include="GitHubActionsTestLogger" Version="2.0.1" PrivateAssets="all" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
     <PackageReference Include="MongoDB.Bson.signed" Version="2.14.1" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
-    <PackageReference Include="xunit" Version="2.4.1" />
+    <PackageReference Include="xunit" Version="2.4.2" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
   </ItemGroup>
 

+ 1 - 1
Jint/Jint.csproj

@@ -14,7 +14,7 @@
   <ItemGroup>
     <PackageReference Include="Esprima" Version="3.0.0-beta-7" />
     <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="all" />
-    <PackageReference Include="Nullable" Version="1.3.0" PrivateAssets="all" />
+    <PackageReference Include="Nullable" Version="1.3.1" PrivateAssets="all" />
   </ItemGroup>
 
   <ItemGroup>

+ 8 - 5
Jint/Native/RegExp/RegExpPrototype.cs

@@ -130,7 +130,7 @@ namespace Jint.Native.RegExp
             var functionalReplace = replaceValue is ICallable;
 
             // we need heavier logic if we have named captures
-            bool mayHaveNamedCaptures = false;
+            var mayHaveNamedCaptures = false;
             if (!functionalReplace)
             {
                 var value = TypeConverter.ToString(replaceValue);
@@ -138,12 +138,14 @@ namespace Jint.Native.RegExp
                 mayHaveNamedCaptures = value.IndexOf('$') != -1;
             }
 
+            var flags = TypeConverter.ToString(rx.Get(PropertyFlags));
+            var global = flags.IndexOf('g') != -1;
+
             var fullUnicode = false;
-            var global = TypeConverter.ToBoolean(rx.Get(PropertyGlobal));
 
             if (global)
             {
-                fullUnicode = TypeConverter.ToBoolean(rx.Get("unicode"));
+                fullUnicode = flags.IndexOf('u') != -1;
                 rx.Set(RegExpInstance.PropertyLastIndex, 0, true);
             }
 
@@ -636,13 +638,14 @@ namespace Jint.Native.RegExp
             var rx = AssertThisIsObjectInstance(thisObj, "RegExp.prototype.match");
 
             var s = TypeConverter.ToString(arguments.At(0));
-            var global = TypeConverter.ToBoolean(rx.Get(PropertyGlobal));
+            var flags = TypeConverter.ToString(rx.Get(PropertyFlags));
+            var global = flags.IndexOf('g') != -1;
             if (!global)
             {
                 return RegExpExec(rx, s);
             }
 
-            var fullUnicode = TypeConverter.ToBoolean(rx.Get("unicode"));
+            var fullUnicode = flags.IndexOf('u') != -1;
             rx.Set(RegExpInstance.PropertyLastIndex, JsNumber.PositiveZero, true);
 
             if (!fullUnicode

+ 0 - 3
Jint/Native/ShadowRealm/ShadowRealmPrototype.cs

@@ -71,13 +71,10 @@ internal sealed class ShadowRealmPrototype : Prototype
             ExceptionHelper.ThrowTypeError(_realm, "Invalid specifier");
         }
 
-        // TODO, newer test suite expects that this is always a string
-        /*
         if (!exportName.IsString())
         {
             ExceptionHelper.ThrowTypeError(_realm, "Invalid exportName");
         }
-        */
 
         var callerRealm = _realm;
         return O.ShadowRealmImportValue(specifierString.ToString(), exportName.ToString(), callerRealm);