]> git.saurik.com Git - cycript.git/commitdiff
Use .toString() to CYONify Function, printing code.
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 13 Sep 2012 19:56:34 +0000 (12:56 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 13 Sep 2012 20:00:12 +0000 (13:00 -0700)
Execute.cpp

index f8b70e54bbfec764a32420611cf26b2e5b6e8b5b..4012186ea9d88da343c6b6351fa5781b346ca183 100644 (file)
@@ -401,6 +401,16 @@ const char *CYPoolCCYON(apr_pool_t *pool, JSContextRef context, JSObjectRef obje
         return cyon;
     }
 
+    if (JSObjectIsFunction(context, object)) {
+        JSValueRef toString(CYGetProperty(context, object, toString_s));
+        if (CYIsCallable(context, toString)) {
+            JSValueRef arguments[1] = {CYCastJSValue(context, CYJSString(""))};
+            JSValueRef value(CYCallAsFunction(context, (JSObjectRef) toString, object, 1, arguments));
+            _assert(value != NULL);
+            return CYPoolCString(pool, context, value);
+        }
+    }
+
     std::ostringstream str;
 
     str << '{';