JintConstantExpression.cs 686 B

1234567891011121314151617181920212223242526
  1. using Esprima.Ast;
  2. using Jint.Native;
  3. namespace Jint.Runtime.Interpreter.Expressions;
  4. /// <summary>
  5. /// Constant JsValue returning expression.
  6. /// </summary>
  7. internal sealed class JintConstantExpression : JintExpression
  8. {
  9. private readonly JsValue _value;
  10. public JintConstantExpression(Expression expression, JsValue value) : base(expression)
  11. {
  12. _value = value;
  13. }
  14. public override JsValue GetValue(EvaluationContext context)
  15. {
  16. // need to notify correct node when taking shortcut
  17. context.LastSyntaxElement = _expression;
  18. return _value;
  19. }
  20. protected override object EvaluateInternal(EvaluationContext context) => _value;
  21. }