Function.cpp 820 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright (c) 2023, Dan Klishch <danilklishch@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include "Function.h"
  7. #include "AST/AST.h"
  8. namespace JSSpecCompiler {
  9. FunctionDefinitionRef TranslationUnit::adopt_function(NonnullRefPtr<FunctionDefinition>&& function)
  10. {
  11. function->m_translation_unit = this;
  12. function_index.set(function->m_name, make_ref_counted<FunctionPointer>(function));
  13. FunctionDefinitionRef result = function.ptr();
  14. function_definitions.append(move(function));
  15. return result;
  16. }
  17. FunctionDeclaration::FunctionDeclaration(StringView name)
  18. : m_name(name)
  19. {
  20. }
  21. FunctionDefinition::FunctionDefinition(StringView name, Tree ast)
  22. : FunctionDeclaration(name)
  23. , m_ast(move(ast))
  24. , m_return_value(make_ref_counted<VariableDeclaration>("$return"sv))
  25. {
  26. }
  27. }