]> git.saurik.com Git - cycript.git/blobdiff - ObjectiveC/Library.mm
Show more explicit types for Objective-C Instance.
[cycript.git] / ObjectiveC / Library.mm
index b3dcc0ae6fda6e724658a34350796a15649b3264..a2a3190d3b59b301cd93aaab92fdd1769cab1816 100644 (file)
@@ -2545,7 +2545,11 @@ static JSValueRef Selector_getProperty_$cyt(JSContextRef context, JSObjectRef ob
 } CYCatch(NULL) }
 
 static JSValueRef Instance_getProperty_$cyt(JSContextRef context, JSObjectRef object, JSStringRef property, JSValueRef *exception) { CYTry {
-    return CYMakeType(context, sig::Object());
+    Instance *internal(reinterpret_cast<Instance *>(JSObjectGetPrivate(object)));
+    id self(internal->GetValue());
+    if (CYIsClass(self))
+        return CYMakeType(context, sig::Meta());
+    return CYMakeType(context, sig::Object(class_getName(object_getClass(self))));
 } CYCatch(NULL) }
 
 static JSValueRef FunctionInstance_getProperty_$cyt(JSContextRef context, JSObjectRef object, JSStringRef property, JSValueRef *exception) { CYTry {
@@ -2557,10 +2561,6 @@ static JSValueRef FunctionInstance_getProperty_$cyt(JSContextRef context, JSObje
     return CYMakeType(context, type);
 } CYCatch(NULL) }
 
-static JSValueRef Class_getProperty_$cyt(JSContextRef context, JSObjectRef object, JSStringRef property, JSValueRef *exception) { CYTry {
-    return CYMakeType(context, sig::Meta());
-} CYCatch(NULL) }
-
 static JSValueRef Instance_getProperty_constructor(JSContextRef context, JSObjectRef object, JSStringRef property, JSValueRef *exception) { CYTry {
     Instance *internal(reinterpret_cast<Instance *>(JSObjectGetPrivate(object)));
     return CYMakeInstance(context, object_getClass(internal->GetValue()), Instance::Permanent);
@@ -2745,11 +2745,6 @@ static JSStaticFunction Class_staticFunctions[2] = {
     {NULL, NULL, 0}
 };
 
-static JSStaticValue Class_staticValues[2] = {
-    {"$cyt", &Class_getProperty_$cyt, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontEnum | kJSPropertyAttributeDontDelete},
-    {NULL, NULL, NULL, 0}
-};
-
 static JSStaticFunction Internal_staticFunctions[2] = {
     {"$cya", &Internal_callAsFunction_$cya, kJSPropertyAttributeDontEnum | kJSPropertyAttributeDontDelete},
     {NULL, NULL, 0}
@@ -2837,7 +2832,6 @@ void CYObjectiveC_Initialize() { /*XXX*/ JSContextRef context(NULL); CYPoolTry {
     definition = kJSClassDefinitionEmpty;
     definition.className = "Class";
     definition.staticFunctions = Class_staticFunctions;
-    definition.staticValues = Class_staticValues;
     Class_ = JSClassCreate(&definition);
 
     definition = kJSClassDefinitionEmpty;