aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/torque/type-oracle.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/torque/type-oracle.h')
-rw-r--r--deps/v8/src/torque/type-oracle.h30
1 files changed, 24 insertions, 6 deletions
diff --git a/deps/v8/src/torque/type-oracle.h b/deps/v8/src/torque/type-oracle.h
index c9d6bb0bf3..405cb41e75 100644
--- a/deps/v8/src/torque/type-oracle.h
+++ b/deps/v8/src/torque/type-oracle.h
@@ -32,7 +32,7 @@ class TypeOracle : public ContextualClass<TypeOracle> {
static StructType* GetStructType(const std::string& name) {
StructType* result = new StructType(CurrentNamespace(), name);
- Get().struct_types_.push_back(std::unique_ptr<StructType>(result));
+ Get().aggregate_types_.push_back(std::unique_ptr<StructType>(result));
return result;
}
@@ -42,7 +42,7 @@ class TypeOracle : public ContextualClass<TypeOracle> {
const TypeAlias* alias) {
ClassType* result = new ClassType(parent, CurrentNamespace(), name, flags,
generates, decl, alias);
- Get().struct_types_.push_back(std::unique_ptr<ClassType>(result));
+ Get().aggregate_types_.push_back(std::unique_ptr<ClassType>(result));
return result;
}
@@ -107,6 +107,10 @@ class TypeOracle : public ContextualClass<TypeOracle> {
return Get().GetBuiltinType(CONSTEXPR_INTPTR_TYPE_STRING);
}
+ static const Type* GetConstexprInstanceTypeType() {
+ return Get().GetBuiltinType(CONSTEXPR_INSTANCE_TYPE_TYPE_STRING);
+ }
+
static const Type* GetVoidType() {
return Get().GetBuiltinType(VOID_TYPE_STRING);
}
@@ -135,6 +139,10 @@ class TypeOracle : public ContextualClass<TypeOracle> {
return Get().GetBuiltinType(TAGGED_TYPE_STRING);
}
+ static const Type* GetUninitializedType() {
+ return Get().GetBuiltinType(UNINITIALIZED_TYPE_STRING);
+ }
+
static const Type* GetSmiType() {
return Get().GetBuiltinType(SMI_TYPE_STRING);
}
@@ -203,11 +211,19 @@ class TypeOracle : public ContextualClass<TypeOracle> {
return Get().GetBuiltinType(CONST_INT32_TYPE_STRING);
}
+ static const Type* GetContextType() {
+ return Get().GetBuiltinType(CONTEXT_TYPE_STRING);
+ }
+
+ static const Type* GetJSFunctionType() {
+ return Get().GetBuiltinType(JS_FUNCTION_TYPE_STRING);
+ }
+
static bool IsImplicitlyConvertableFrom(const Type* to, const Type* from) {
for (Generic* from_constexpr :
Declarations::LookupGeneric(kFromConstexprMacroName)) {
- if (base::Optional<Callable*> specialization =
- from_constexpr->GetSpecialization({to, from})) {
+ if (base::Optional<const Callable*> specialization =
+ from_constexpr->specializations().Get({to, from})) {
if ((*specialization)->signature().GetExplicitTypes() ==
TypeVector{from}) {
return true;
@@ -217,7 +233,9 @@ class TypeOracle : public ContextualClass<TypeOracle> {
return false;
}
- static void FinalizeClassTypes();
+ static const std::vector<std::unique_ptr<AggregateType>>* GetAggregateTypes();
+
+ static void FinalizeAggregateTypes();
private:
const Type* GetBuiltinType(const std::string& name) {
@@ -229,7 +247,7 @@ class TypeOracle : public ContextualClass<TypeOracle> {
Deduplicator<UnionType> union_types_;
Deduplicator<ReferenceType> reference_types_;
std::vector<std::unique_ptr<Type>> nominal_types_;
- std::vector<std::unique_ptr<AggregateType>> struct_types_;
+ std::vector<std::unique_ptr<AggregateType>> aggregate_types_;
std::vector<std::unique_ptr<Type>> top_types_;
};