diff --git a/Jint.Tests/Runtime/RegExpTests.cs b/Jint.Tests/Runtime/RegExpTests.cs index 3e9f17603a..5e1e830b46 100644 --- a/Jint.Tests/Runtime/RegExpTests.cs +++ b/Jint.Tests/Runtime/RegExpTests.cs @@ -59,6 +59,14 @@ public void ToStringWithNonRegExpInstanceAndValidProperties() 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() diff --git a/Jint/Native/Iterator/IteratorInstance.cs b/Jint/Native/Iterator/IteratorInstance.cs index 5c64e689e6..21e099c394 100644 --- a/Jint/Native/Iterator/IteratorInstance.cs +++ b/Jint/Native/Iterator/IteratorInstance.cs @@ -270,7 +270,7 @@ public override bool TryIteratorStep(out ObjectInstance nextItem) } nextItem = CreateIterResultObject(match, false); - return false; + return true; } } }