Index: src/types.h |
diff --git a/src/types.h b/src/types.h |
index 4569d131b157eb9bc7dce1ee8a01278d51c54e91..bfa9e67983b102eb81eb3bd289e3d49fc9c8a837 100644 |
--- a/src/types.h |
+++ b/src/types.h |
@@ -246,16 +246,23 @@ class TypeImpl : public Config::Base { |
bool Is(TypeImpl* that) { return this == that || this->SlowIs(that); } |
template<class TypeHandle> |
bool Is(TypeHandle that) { return this->Is(*that); } |
+ |
bool Maybe(TypeImpl* that); |
template<class TypeHandle> |
bool Maybe(TypeHandle that) { return this->Maybe(*that); } |
+ // Equivalent to Constant(value)->Is(this), but avoiding allocation. |
+ bool Contains(i::Object* val); |
+ bool Contains(i::Handle<i::Object> val) { return this->Contains(*val); } |
+ |
// State-dependent versions of Of and Is that consider subtyping between |
// a constant and its map class. |
- static TypeHandle OfCurrently(i::Handle<i::Object> value, Region* region); |
- bool IsCurrently(TypeImpl* that); |
+ static TypeHandle NowOf(i::Handle<i::Object> value, Region* region); |
+ bool NowIs(TypeImpl* that); |
template<class TypeHandle> |
- bool IsCurrently(TypeHandle that) { return this->IsCurrently(*that); } |
+ bool NowIs(TypeHandle that) { return this->NowIs(*that); } |
+ bool NowContains(i::Object* val); |
+ bool NowContains(i::Handle<i::Object> val) { return this->NowContains(*val); } |
bool IsClass() { return Config::is_class(this); } |
bool IsConstant() { return Config::is_constant(this); } |