JintConditionalExpression.cs 742 B

12345678910111213141516171819202122
  1. namespace Jint.Runtime.Interpreter.Expressions;
  2. internal sealed class JintConditionalExpression : JintExpression
  3. {
  4. private readonly JintExpression _test;
  5. private readonly JintExpression _consequent;
  6. private readonly JintExpression _alternate;
  7. public JintConditionalExpression(ConditionalExpression expression) : base(expression)
  8. {
  9. _test = Build(expression.Test);
  10. _consequent = Build(expression.Consequent);
  11. _alternate = Build(expression.Alternate);
  12. }
  13. protected override object EvaluateInternal(EvaluationContext context)
  14. {
  15. return TypeConverter.ToBoolean(_test.GetValue(context))
  16. ? _consequent.GetValue(context)
  17. : _alternate.GetValue(context);
  18. }
  19. }