]> git.saurik.com Git - cycript.git/blobdiff - Library.cpp
I don't understand what the hell is wrong with Apple's compiler, but it does not...
[cycript.git] / Library.cpp
index 2c6e31bcb73f83d929e62378deb5597541a6ce5c..f95cf9e805bde5df9d1ca4db1aaaa2c656ff7d6e 100644 (file)
@@ -1466,21 +1466,6 @@ const char *CYExecute(apr_pool_t *pool, const char *code) {
 
 extern "C" void CydgetSetupContext(JSGlobalContextRef context) {
     CYSetupContext(context);
-
-    JSObjectRef last(NULL);
-    JSObjectRef curr(CYGetGlobalObject(context));
-
-    goto next; for (JSValueRef next;;) {
-        if (JSValueIsNull(context, next))
-            break;
-        last = curr;
-        curr = CYCastJSObject(context, next);
-      next:
-        next = JSObjectGetPrototype(context, curr);
-    }
-
-    JSObjectRef all(JSObjectMake(context, All_, NULL));
-    JSObjectSetPrototype(context, last, all);
 }
 
 extern "C" void CydgetPoolParse(apr_pool_t *pool, const uint16_t **data, size_t *size) {
@@ -1716,6 +1701,19 @@ extern "C" void CYSetupContext(JSGlobalContextRef context) {
     JSObjectRef all(JSObjectMake(context, All_, NULL));
     CYSetProperty(context, cycript, CYJSString("all"), all);
 
+    JSObjectRef last(NULL), curr(global);
+
+    goto next; for (JSValueRef next;;) {
+        if (JSValueIsNull(context, next))
+            break;
+        last = curr;
+        curr = CYCastJSObject(context, next);
+      next:
+        next = JSObjectGetPrototype(context, curr);
+    }
+
+    JSObjectSetPrototype(context, last, all);
+
     CYSetProperty(context, global, CYJSString("$cyq"), &$cyq);
 
     JSObjectRef System(JSObjectMake(context, NULL, NULL));
@@ -1738,7 +1736,6 @@ JSGlobalContextRef CYGetJSContext() {
     if (context_ == NULL) {
         context_ = JSGlobalContextCreate(Global_);
         CYSetupContext(context_);
-        JSObjectSetPrototype(context_, CYGetGlobalObject(context_), JSObjectMake(context_, All_, NULL));
     }
 
     return context_;