Browse Source

Additional test

auz34 11 years ago
parent
commit
f3e7f2dc3e
1 changed files with 33 additions and 0 deletions
  1. 33 0
      Jint.Tests/Runtime/EngineTests.cs

+ 33 - 0
Jint.Tests/Runtime/EngineTests.cs

@@ -641,6 +641,39 @@ namespace Jint.Tests.Runtime
             );
         }
 
+        [Fact]
+        public void ShouldRecognizeAndDiscardChainedRecursion()
+        {
+            var script = @" var funcRoot, funcA, funcB, funcC, funcD;
+
+            var funcRoot = function() {
+                funcA();
+            };
+ 
+            var funcA = function() {
+                funcB();
+            };
+
+            var funcB = function() {
+                funcC();
+            };
+
+            var funcC = function() {
+                funcD();
+            };
+
+            var funcD = function() {
+                funcRoot();
+            };
+
+            funcRoot();
+            ";
+
+            Assert.Throws<RecursionDiscardedException>(
+                () => new Engine(cfg => cfg.DiscardRecursion()).Execute(script)
+            );
+        }
+
         [Fact]
         public void ShouldConvertDoubleToStringWithoutLosingPrecision()
         {