JintConditionalExpression.cs 816 B

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