]> git.saurik.com Git - cycript.git/commitdiff
Fix bridge cache (it must be *below* Cycript.all).
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 23 Dec 2015 13:54:13 +0000 (13:54 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 23 Dec 2015 13:54:13 +0000 (13:54 +0000)
Execute.cpp

index e8684c5e7b1683d87adee94604322e5d3edc7bbe..2a314ca55181bf3a1ac7820e3d830de670f55640 100644 (file)
@@ -1177,7 +1177,8 @@ static JSValueRef All_getProperty(JSContextRef context, JSObjectRef object, JSSt
     CYPool pool;
     if (const char *code = CYBridgeHash(pool, CYPoolUTF8String(pool, context, property))) {
         JSValueRef result(_jsccall(JSEvaluateScript, context, CYJSString(CYPoolCode(pool, code)), NULL, NULL, 0));
     CYPool pool;
     if (const char *code = CYBridgeHash(pool, CYPoolUTF8String(pool, context, property))) {
         JSValueRef result(_jsccall(JSEvaluateScript, context, CYJSString(CYPoolCode(pool, code)), NULL, NULL, 0));
-        CYSetProperty(context, object, property, result, kJSPropertyAttributeDontEnum);
+        JSObjectRef cache(CYGetCachedObject(context, CYJSString("cache")));
+        CYSetProperty(context, cache, property, result);
         return result;
     }
 
         return result;
     }
 
@@ -2143,6 +2144,10 @@ extern "C" void CYSetupContext(JSGlobalContextRef context) {
     JSObjectRef all(JSObjectMake(context, All_, NULL));
     CYSetProperty(context, cycript, CYJSString("all"), all);
 
     JSObjectRef all(JSObjectMake(context, All_, NULL));
     CYSetProperty(context, cycript, CYJSString("all"), all);
 
+    JSObjectRef cache(JSObjectMake(context, NULL, NULL));
+    CYSetProperty(context, cy, CYJSString("cache"), cache);
+    CYSetPrototype(context, cache, all);
+
     JSObjectRef alls(_jsccall(JSObjectCallAsConstructor, context, Array, 0, NULL));
     CYSetProperty(context, cycript, CYJSString("alls"), alls);
 
     JSObjectRef alls(_jsccall(JSObjectCallAsConstructor, context, Array, 0, NULL));
     CYSetProperty(context, cycript, CYJSString("alls"), alls);
 
@@ -2158,7 +2163,7 @@ extern "C" void CYSetupContext(JSGlobalContextRef context) {
             next = JSObjectGetPrototype(context, curr);
         }
 
             next = JSObjectGetPrototype(context, curr);
         }
 
-        CYSetPrototype(context, last, all);
+        CYSetPrototype(context, last, cache);
     }
 
     JSObjectRef System(JSObjectMake(context, NULL, NULL));
     }
 
     JSObjectRef System(JSObjectMake(context, NULL, NULL));