RecursionDiscardedException.cs 805 B

1234567891011121314151617181920212223242526
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace Jint.Runtime
  6. {
  7. using Jint.Native;
  8. using Jint.Parser.Ast;
  9. using Jint.Runtime.References;
  10. public class RecursionDiscardedException : Exception
  11. {
  12. public string CallChain { get; private set; }
  13. public string CallExpressionReference { get; private set; }
  14. public RecursionDiscardedException(Stack<Tuple<CallExpression, JsValue, string>> currentStack, Tuple<CallExpression, JsValue, string> currentExpression)
  15. : base("The recursion is forbidden by script host.")
  16. {
  17. CallExpressionReference = currentExpression.Item3;
  18. CallChain = string.Join("->", currentStack.Select(t => t.Item3).ToArray().Reverse());
  19. }
  20. }
  21. }