1.1 --- a/src/Types.cpp Sun Sep 16 19:02:23 2012 -0700
1.2 +++ b/src/Types.cpp Sun Sep 16 21:34:10 2012 -0700
1.3 @@ -104,6 +104,29 @@
1.4 }
1.5
1.6 Type *
1.7 +Type::NewExternalArray(Zone *zone, Handle<Type> contained)
1.8 +{
1.9 + Local<Type> type(zone, Type::cast(zone->allocate(MapKind_Type, sizeof(Type), Heap::Tenure_Old)));
1.10 + if (!type)
1.11 + return NULL;
1.12 +
1.13 + assert(contained->isPrimitive());
1.14 +
1.15 + type->kind_ = EXTERNAL_ARRAY;
1.16 + type->name_ = NULL;
1.17 + type->contained_ = contained;
1.18 + type->returnType_ = NULL;
1.19 + type->parameters_ = NULL;
1.20 + type->defaults_ = NULL;
1.21 + type->fields_ = NULL;
1.22 + type->newMap_ = NULL;
1.23 + type->elements_ = DYNAMIC_ARRAY_SIZE;
1.24 + type->levels_ = 1;
1.25 + type->const_ = false;
1.26 + return type;
1.27 +}
1.28 +
1.29 +Type *
1.30 Type::NewReference(Zone *zone, Handle<Type> contained, bool isConst)
1.31 {
1.32 Local<Type> type(zone, Type::cast(zone->allocate(MapKind_Type, sizeof(Type), Heap::Tenure_Old)));