Browse Source

Fix Regex Iterator (#1264)

Victor Tran 2 years ago
parent
commit
82077b2cbb
2 changed files with 9 additions and 1 deletions
  1. 8 0
      Jint.Tests/Runtime/RegExpTests.cs
  2. 1 1
      Jint/Native/Iterator/IteratorInstance.cs

+ 8 - 0
Jint.Tests/Runtime/RegExpTests.cs

@@ -59,6 +59,14 @@ namespace Jint.Tests.Runtime
             Assert.Equal("/a/b", result);
         }
 
+        [Fact]
+        public void MatchAllIteratorReturnsCorrectNumberOfElements()
+        {
+            var engine = new Engine();
+            var result = engine.Evaluate("[...'one two three'.matchAll(/t/g)].length").AsInteger();
+            
+            Assert.Equal(2, result);
+        }
 
         [Fact]
         public void ToStringWithRealRegExpInstance()

+ 1 - 1
Jint/Native/Iterator/IteratorInstance.cs

@@ -270,7 +270,7 @@ namespace Jint.Native.Iterator
                 }
 
                 nextItem = CreateIterResultObject(match, false);
-                return false;
+                return true;
             }
         }
     }