JintExportNamedDeclaration.cs 901 B

123456789101112131415161718192021222324252627282930
  1. using Esprima.Ast;
  2. using Jint.Native;
  3. namespace Jint.Runtime.Interpreter.Statements;
  4. internal sealed class JintExportNamedDeclaration : JintStatement<ExportNamedDeclaration>
  5. {
  6. private JintStatement? _declarationStatement;
  7. public JintExportNamedDeclaration(ExportNamedDeclaration statement) : base(statement)
  8. {
  9. }
  10. protected override void Initialize(EvaluationContext context)
  11. {
  12. if (_statement.Declaration != null)
  13. {
  14. _declarationStatement = Build(_statement.Declaration);
  15. }
  16. }
  17. /// <summary>
  18. /// https://tc39.es/ecma262/#sec-exports-runtime-semantics-evaluation
  19. /// </summary>
  20. protected override Completion ExecuteInternal(EvaluationContext context)
  21. {
  22. _declarationStatement?.Execute(context);
  23. return new Completion(CompletionType.Normal, JsValue.Undefined, ((JintStatement) this)._statement);
  24. }
  25. }