Index: src/types.h |
diff --git a/src/types.h b/src/types.h |
index 8f806245327100a867b9f292527547cc1b0013ca..228b6d0773181ce1a4c5a37ad4943e27419f6be9 100644 |
--- a/src/types.h |
+++ b/src/types.h |
@@ -233,6 +233,7 @@ namespace internal { |
V(Detectable, kDetectableReceiver | kNumber | kName) \ |
V(Object, kDetectableObject | kUndetectable) \ |
V(Receiver, kObject | kProxy) \ |
+ V(ReceiverOrUndefined, kReceiver | kUndefined) \ |
V(StringOrReceiver, kString | kReceiver) \ |
V(Unique, kBoolean | kUniqueName | kNull | kUndefined | \ |
kReceiver) \ |
@@ -410,6 +411,14 @@ class TypeImpl : public Config::Base { |
function->InitParameter(2, param2); |
return function; |
} |
+ static TypeHandle Function(TypeHandle result, int arity, TypeHandle* params, |
+ Region* region) { |
+ FunctionHandle function = Function(result, Any(region), arity, region); |
+ for (int i = 0; i < arity; ++i) { |
+ function->InitParameter(i, params[i]); |
+ } |
+ return function; |
+ } |
static TypeHandle Union(TypeHandle type1, TypeHandle type2, Region* reg); |
static TypeHandle Intersect(TypeHandle type1, TypeHandle type2, Region* reg); |