JintPrivateIdentifierExpression.cs 813 B

1234567891011121314151617181920212223242526
  1. namespace Jint.Runtime.Interpreter.Expressions;
  2. internal sealed class JintPrivateIdentifierExpression : JintExpression
  3. {
  4. private readonly string _privateIdentifierString;
  5. public JintPrivateIdentifierExpression(PrivateIdentifier expression) : base(expression)
  6. {
  7. _privateIdentifierString = expression.Name;
  8. }
  9. protected override object EvaluateInternal(EvaluationContext context)
  10. {
  11. var engine = context.Engine;
  12. var env = engine.ExecutionContext.PrivateEnvironment;
  13. var privateIdentifier = env!.ResolvePrivateIdentifier(_privateIdentifierString);
  14. if (privateIdentifier is not null)
  15. {
  16. return privateIdentifier;
  17. }
  18. ExceptionHelper.ThrowReferenceError(engine.Realm, "TODO Not found!!");
  19. return null;
  20. }
  21. }