JintClassExpression.cs 690 B

123456789101112131415161718192021
  1. using Esprima.Ast;
  2. using Jint.Native.Function;
  3. namespace Jint.Runtime.Interpreter.Expressions
  4. {
  5. internal sealed class JintClassExpression : JintExpression
  6. {
  7. private readonly ClassDefinition _classDefinition;
  8. public JintClassExpression(ClassExpression expression) : base(expression)
  9. {
  10. _classDefinition = new ClassDefinition(expression.Id?.Name, expression.SuperClass, expression.Body);
  11. }
  12. protected override object EvaluateInternal(EvaluationContext context)
  13. {
  14. var env = context.Engine.ExecutionContext.LexicalEnvironment;
  15. return _classDefinition.BuildConstructor(context, env);
  16. }
  17. }
  18. }