+static JSValueRef Class_callAsFunction_pointerTo(JSContextRef context, JSObjectRef object, JSObjectRef _this, size_t count, const JSValueRef arguments[], JSValueRef *exception) { CYTry {
+ if (!CYJSValueIsNSObject(context, _this))
+ return NULL;
+
+ Instance *internal(reinterpret_cast<Instance *>(JSObjectGetPrivate(_this)));
+ id value(internal->GetValue());
+
+ if (!CYIsClass(value))
+ CYThrow("non-Class object cannot be used as Type");
+
+ // XXX: this is a very silly implementation
+
+ std::ostringstream type;
+ type << "@\"";
+ type << class_getName(value);
+ type << "\"";
+
+ CYPoolTry {
+ return CYMakeType(context, type.str().c_str());
+ } CYPoolCatch(NULL)
+} CYCatch return /*XXX*/ NULL; }
+