]> git.saurik.com Git - cycript.git/blobdiff - ObjectiveC/Library.mm
Document a potential change to FunctionInstance.
[cycript.git] / ObjectiveC / Library.mm
index 4d51f299f651c2723fdb1436e1cfc6b2ec219ce2..b4e33c36e79c18f38f5790fb832e30b60f9661dd 100644 (file)
@@ -1871,6 +1871,11 @@ static JSValueRef Instance_callAsFunction(JSContextRef context, JSObjectRef obje
 
     if (![self isKindOfClass:NSBlock_])
         CYThrow("non-NSBlock object is not a function");
+    // XXX: replace above logic with the following assertion
+    //_assert([self isKindOfClass:NSBlock_]);
+    // to do this, make it so FunctionInstance_ is the class of blocks
+    // to do /that/, generalize the various "is exactly Instance_" checks
+    // then, move Instance_callAsFunction to only be on FunctionInstance
 
     struct BlockDescriptor1 {
         unsigned long int reserved;
@@ -2566,15 +2571,15 @@ void CYObjectiveC_Initialize() { /*XXX*/ JSContextRef context(NULL); CYPoolTry {
     definition.className = "ArrayInstance";
     ArrayInstance_ = JSClassCreate(&definition);
 
-    definition.className = "FunctionInstance";
-    FunctionInstance_ = JSClassCreate(&definition);
-
     definition.className = "ObjectInstance";
     ObjectInstance_ = JSClassCreate(&definition);
 
     definition.className = "StringInstance";
     StringInstance_ = JSClassCreate(&definition);
 
+    definition.className = "FunctionInstance";
+    FunctionInstance_ = JSClassCreate(&definition);
+
     definition = kJSClassDefinitionEmpty;
     definition.className = "Internal";
     definition.staticFunctions = Internal_staticFunctions;