Example #1
0
        public void ShouldProvideCallChainWhenDiscardRecursion()
        {
            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();
            ";

            RecursionDepthOverflowException exception = null;

            try
            {
                new Engine(cfg => cfg.LimitRecursion()).Execute(script);
            }
            catch (RecursionDepthOverflowException ex)
            {
                exception = ex;
            }
        }
Example #2
0
        public void ShouldProvideCallChainWhenDiscardRecursion()
        {
            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();
            ";

            RecursionDepthOverflowException exception = null;

            try
            {
                new Engine(cfg => cfg.LimitRecursion()).Execute(script);
            }
            catch (RecursionDepthOverflowException ex)
            {
                exception = ex;
            }

            Assert.NotNull(exception);
            Assert.Equal("funcRoot->funcA->funcB->funcC->funcD", exception.CallChain);
            Assert.Equal("funcRoot", exception.CallExpressionReference);
        }
Example #3
0
 public void LogError(RecursionDepthOverflowException error)
 {
     Output?.LogError(error);
 }
Example #4
0
 public void LogError(RecursionDepthOverflowException error)
 {
     AppendText("Stack overflow", Color.DarkRed);
 }