]> git.saurik.com Git - cycript.git/blobdiff - Execute.cpp
Error instances that weren't thrown have no stack.
[cycript.git] / Execute.cpp
index d09c31a683cf6d18bed16a1de3b2e31af5734cb4..1c83e26e9252cec2b189c249321e96cf82faca90 100644 (file)
@@ -1206,7 +1206,15 @@ static JSValueRef All_getProperty(JSContextRef context, JSObjectRef object, JSSt
     const char *code;
     unsigned flags;
     if (CYBridgeHash(pool, CYPoolUTF8String(pool, context, property), code, flags)) {
-        JSValueRef result(_jsccall(JSEvaluateScript, context, CYJSString(CYPoolCode(pool, code)), NULL, NULL, 0));
+        CYUTF8String parsed;
+
+        try {
+            parsed = CYPoolCode(pool, code);
+        } catch (const CYException &error) {
+            CYThrow("%s", pool.strcat("error caching ", CYPoolCString(pool, context, property), ": ", error.PoolCString(pool), NULL));
+        }
+
+        JSValueRef result(_jsccall(JSEvaluateScript, context, CYJSString(parsed), NULL, NULL, 0));
 
         if (flags == 0) {
             JSObjectRef cache(CYGetCachedObject(context, CYJSString("cache")));