JintClassExpression.cs 711 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. public JintClassExpression(Engine engine, ClassExpression expression) : base(engine, expression)
  8. {
  9. }
  10. protected override object EvaluateInternal()
  11. {
  12. var env = _engine.ExecutionContext.LexicalEnvironment;
  13. var expression = (ClassExpression) _expression;
  14. var classDefinition = new ClassDefinition(expression.Id, expression.SuperClass, expression.Body);
  15. var closure = classDefinition.BuildConstructor(_engine, env);
  16. return closure;
  17. }
  18. }
  19. }