���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /home/real/node-v13.0.1/deps/v8/src/torque/ |
// Copyright 2017 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_TORQUE_GLOBAL_CONTEXT_H_ #define V8_TORQUE_GLOBAL_CONTEXT_H_ #include <map> #include "src/common/globals.h" #include "src/torque/ast.h" #include "src/torque/contextual.h" #include "src/torque/declarable.h" namespace v8 { namespace internal { namespace torque { class GlobalContext : public ContextualClass<GlobalContext> { public: GlobalContext(GlobalContext&&) V8_NOEXCEPT = default; GlobalContext& operator=(GlobalContext&&) V8_NOEXCEPT = default; explicit GlobalContext(Ast ast); static Namespace* GetDefaultNamespace() { return Get().default_namespace_; } template <class T> T* RegisterDeclarable(std::unique_ptr<T> d) { T* ptr = d.get(); declarables_.push_back(std::move(d)); return ptr; } static const std::vector<std::unique_ptr<Declarable>>& AllDeclarables() { return Get().declarables_; } static void RegisterClass(const TypeAlias* alias) { DCHECK(alias->ParentScope()->IsNamespace()); Get().classes_.push_back(alias); } using GlobalClassList = std::vector<const TypeAlias*>; static const GlobalClassList& GetClasses() { return Get().classes_; } static void AddCppInclude(std::string include_path) { Get().cpp_includes_.push_back(std::move(include_path)); } static const std::vector<std::string>& CppIncludes() { return Get().cpp_includes_; } static void SetCollectLanguageServerData() { Get().collect_language_server_data_ = true; } static bool collect_language_server_data() { return Get().collect_language_server_data_; } static void SetForceAssertStatements() { Get().force_assert_statements_ = true; } static bool force_assert_statements() { return Get().force_assert_statements_; } static Ast* ast() { return &Get().ast_; } static size_t FreshId() { return Get().fresh_id_++; } struct PerFileStreams { std::stringstream csa_headerfile; std::stringstream csa_ccfile; }; static PerFileStreams& GeneratedPerFile(SourceId file) { return Get().generated_per_file_[file]; } private: bool collect_language_server_data_; bool force_assert_statements_; Namespace* default_namespace_; Ast ast_; std::vector<std::unique_ptr<Declarable>> declarables_; std::vector<std::string> cpp_includes_; std::map<SourceId, PerFileStreams> generated_per_file_; GlobalClassList classes_; size_t fresh_id_ = 0; friend class LanguageServerData; }; template <class T> T* RegisterDeclarable(std::unique_ptr<T> d) { return GlobalContext::Get().RegisterDeclarable(std::move(d)); } class TargetArchitecture : public ContextualClass<TargetArchitecture> { public: explicit TargetArchitecture(bool force_32bit); static int TaggedSize() { return Get().tagged_size_; } static int RawPtrSize() { return Get().raw_ptr_size_; } private: const int tagged_size_; const int raw_ptr_size_; }; } // namespace torque } // namespace internal } // namespace v8 #endif // V8_TORQUE_GLOBAL_CONTEXT_H_