]> git.saurik.com Git - cycript.git/commitdiff
On iOS 9, JSObjectGetPrototype changes JSValueRef.
authorJay Freeman (saurik) <saurik@saurik.com>
Tue, 15 Sep 2015 04:11:42 +0000 (21:11 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Tue, 15 Sep 2015 04:16:35 +0000 (21:16 -0700)
Execute.cpp
JavaScript.hpp

index 11fada2bdcd55ab3ade523561891d5b504f51719..f7ee72434860c0f23547c7367287024614439d17 100644 (file)
@@ -86,7 +86,7 @@ void CYSetProperty(JSContextRef context, JSObjectRef object, JSStringRef name, J
 
 void CYSetPrototype(JSContextRef context, JSObjectRef object, JSValueRef value) {
     JSObjectSetPrototype(context, object, value);
-    _assert(JSObjectGetPrototype(context, object) == value);
+    _assert(CYIsEqual(context, JSObjectGetPrototype(context, object), value));
 }
 /* }}} */
 /* JavaScript Strings {{{ */
@@ -322,6 +322,10 @@ bool CYIsCallable(JSContextRef context, JSValueRef value) {
     return value != NULL && JSValueIsObject(context, value) && JSObjectIsFunction(context, (JSObjectRef) value);
 }
 
+bool CYIsEqual(JSContextRef context, JSValueRef lhs, JSValueRef rhs) {
+    return _jsccall(JSValueIsEqual, context, lhs, rhs);
+}
+
 size_t CYArrayLength(JSContextRef context, JSObjectRef array) {
     return CYCastDouble(context, CYGetProperty(context, array, length_s));
 }
index 9408c78d89e301dd0dc58e092ce0617b6f6d3cb8..e80be762b2d2abe41bb21f29a63b520a961bd306 100644 (file)
@@ -66,6 +66,8 @@ void CYSetArgs(int argc, const char *argv[]);
 bool CYCastBool(JSContextRef context, JSValueRef value);
 double CYCastDouble(JSContextRef context, JSValueRef value);
 
+bool CYIsEqual(JSContextRef context, JSValueRef lhs, JSValueRef rhs);
+
 CYUTF8String CYPoolUTF8String(CYPool &pool, JSContextRef context, JSStringRef value);
 const char *CYPoolCString(CYPool &pool, JSContextRef context, JSStringRef value);