X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/ccb4e34c0af3a2d318ce9c11ba1e98e1e1163b77..bd5734cc00d2257272e8f7702f9e9b6f64858907:/JavaScript.hpp diff --git a/JavaScript.hpp b/JavaScript.hpp index 9a58ccf..b501cf2 100644 --- a/JavaScript.hpp +++ b/JavaScript.hpp @@ -103,11 +103,11 @@ JSObjectRef CYCastJSObject(JSContextRef context, JSValueRef value); JSValueRef CYJSUndefined(JSContextRef context); JSValueRef CYJSNull(JSContextRef context); -void *CYCastPointer_(JSContextRef context, JSValueRef value); +void *CYCastPointer_(JSContextRef context, JSValueRef value, bool *guess = NULL); template -_finline Type_ CYCastPointer(JSContextRef context, JSValueRef value) { - return reinterpret_cast(CYCastPointer_(context, value)); +_finline Type_ CYCastPointer(JSContextRef context, JSValueRef value, bool *guess = NULL) { + return reinterpret_cast(CYCastPointer_(context, value, guess)); } void CYPoolFFI(CYPool *pool, JSContextRef context, sig::Type *type, ffi_type *ffi, void *data, JSValueRef value); @@ -143,6 +143,7 @@ struct CYRegisterHook { JSObjectRef CYMakePointer(JSContextRef context, void *pointer, size_t length, sig::Type *type, ffi_type *ffi, JSObjectRef owner); +JSObjectRef CYMakeType(JSContextRef context, sig::Primitive primitive); JSObjectRef CYMakeType(JSContextRef context, sig::Type *type); JSObjectRef CYMakeType(JSContextRef context, sig::Signature *signature); @@ -150,6 +151,8 @@ void CYFinalize(JSObjectRef object); size_t CYArrayLength(JSContextRef context, JSObjectRef array); JSValueRef CYArrayGet(JSContextRef context, JSObjectRef array, size_t index); + +void CYArrayPush(JSContextRef context, JSObjectRef array, size_t length, const JSValueRef arguments[]); void CYArrayPush(JSContextRef context, JSObjectRef array, JSValueRef value); const char *CYPoolCString(CYPool &pool, JSContextRef context, JSValueRef value); @@ -157,6 +160,7 @@ const char *CYPoolCString(CYPool &pool, JSContextRef context, JSValueRef value); JSStringRef CYCopyJSString(const char *value); JSStringRef CYCopyJSString(JSStringRef value); JSStringRef CYCopyJSString(CYUTF8String value); +JSStringRef CYCopyJSString(CYUTF16String value); JSStringRef CYCopyJSString(JSContextRef context, JSValueRef value); void CYGarbageCollect(JSContextRef context);