CancellationConstraint.cs 654 B

12345678910111213141516171819202122232425262728293031
  1. using Jint.Runtime;
  2. using System.Threading;
  3. namespace Jint.Constraints;
  4. public sealed class CancellationConstraint : Constraint
  5. {
  6. private CancellationToken _cancellationToken;
  7. internal CancellationConstraint(CancellationToken cancellationToken)
  8. {
  9. _cancellationToken = cancellationToken;
  10. }
  11. public override void Check()
  12. {
  13. if (_cancellationToken.IsCancellationRequested)
  14. {
  15. Throw.ExecutionCanceledException();
  16. }
  17. }
  18. public void Reset(CancellationToken cancellationToken)
  19. {
  20. _cancellationToken = cancellationToken;
  21. }
  22. public override void Reset()
  23. {
  24. }
  25. }