using Esprima.Ast;
using Jint.Native;
namespace Jint.Runtime.Interpreter.Expressions
{
///
/// Constant JsValue returning expression.
///
internal sealed class JintConstantExpression : JintExpression
{
private readonly JsValue _value;
public JintConstantExpression(Engine engine, Expression expression, JsValue value) : base(engine, expression)
{
_value = value;
}
///
/// Resolves the underlying value for this expression.
/// By default uses the Engine for resolving.
///
///
public override JsValue GetValue()
{
// need to notify correct node when taking shortcut
_engine._lastSyntaxNode = _expression;
return _value;
}
protected override object EvaluateInternal() => _value;
}
}