5 #ifndef V8_TORQUE_GLOBAL_CONTEXT_H_ 6 #define V8_TORQUE_GLOBAL_CONTEXT_H_ 8 #include "src/torque/declarable.h" 9 #include "src/torque/declarations.h" 10 #include "src/torque/type-oracle.h" 19 CurrentScope::Scope current_scope(
nullptr);
20 CurrentSourcePosition::Scope current_source_position(
23 RegisterDeclarable(base::make_unique<Namespace>(
"base"));
25 static Namespace* GetDefaultNamespace() {
return Get().default_namespace_; }
27 T* RegisterDeclarable(std::unique_ptr<T> d) {
29 declarables_.push_back(std::move(d));
33 static const std::vector<std::unique_ptr<Declarable>>& AllDeclarables() {
34 return Get().declarables_;
37 static const std::vector<Namespace*> GetNamespaces() {
38 std::vector<Namespace*> result;
39 for (
auto& declarable : AllDeclarables()) {
40 if (
Namespace* n = Namespace::DynamicCast(declarable.get())) {
47 static void SetVerbose() { Get().verbose_ =
true; }
48 static bool verbose() {
return Get().verbose_; }
49 static Ast* ast() {
return &Get().ast_; }
55 std::vector<std::unique_ptr<Declarable>> declarables_;
59 T* RegisterDeclarable(std::unique_ptr<T> d) {
60 return GlobalContext::Get().RegisterDeclarable(std::move(d));
67 #endif // V8_TORQUE_GLOBAL_CONTEXT_H_