JintMetaPropertyExpression.cs 723 B

12345678910111213141516171819202122232425
  1. using Esprima.Ast;
  2. namespace Jint.Runtime.Interpreter.Expressions
  3. {
  4. internal sealed class JintMetaPropertyExpression : JintExpression
  5. {
  6. private readonly bool _newTarget;
  7. public JintMetaPropertyExpression(MetaProperty expression) : base(expression)
  8. {
  9. _newTarget = expression.Meta.Name == "new" && expression.Property.Name == "target";
  10. }
  11. protected override ExpressionResult EvaluateInternal(EvaluationContext context)
  12. {
  13. if (_newTarget)
  14. {
  15. return NormalCompletion(context.Engine.GetNewTarget());
  16. }
  17. ExceptionHelper.ThrowNotImplementedException();
  18. return default;
  19. }
  20. }
  21. }