X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/849b0beafc5d722cd9abf4050430600d149cc342..refs/heads/master:/JavaScript.hpp diff --git a/JavaScript.hpp b/JavaScript.hpp index 47a9618..c959b69 100644 --- a/JavaScript.hpp +++ b/JavaScript.hpp @@ -37,14 +37,18 @@ #include #endif +#include "sig/types.hpp" + #include "Pooling.hpp" #include "String.hpp" +#include "Utility.hpp" extern JSStringRef Array_s; extern JSStringRef constructor_s; extern JSStringRef cy_s; extern JSStringRef cyi_s; extern JSStringRef cyt_s; +extern JSStringRef cyt__s; extern JSStringRef length_s; extern JSStringRef message_s; extern JSStringRef name_s; @@ -65,11 +69,9 @@ JSObjectRef CYGetGlobalObject(JSContextRef context); extern "C" void CYSetupContext(JSGlobalContextRef context); const char *CYExecute(JSContextRef context, CYPool &pool, CYUTF8String code); -#ifndef __ANDROID__ void CYCancel(); -#endif -void CYSetArgs(int argc, const char *argv[]); +void CYSetArgs(const char *argv0, const char *script, int argc, const char *argv[]); bool CYCastBool(JSContextRef context, JSValueRef value); double CYCastDouble(JSContextRef context, JSValueRef value); @@ -114,6 +116,13 @@ JSObjectRef CYCastJSObject(JSContextRef context, JSValueRef value); JSValueRef CYJSUndefined(JSContextRef context); JSValueRef CYJSNull(JSContextRef context); +void *CYCastPointerEx_(JSContextRef context, JSObjectRef value); + +template +_finline Type_ CYCastPointerEx(JSContextRef context, JSObjectRef value) { + return reinterpret_cast(CYCastPointerEx_(context, value)); +} + void *CYCastPointer_(JSContextRef context, JSValueRef value, bool *guess = NULL); template @@ -194,15 +203,9 @@ class CYJSString { { } - template - CYJSString(Arg0_ arg0) : - string_(CYCopyJSString(arg0)) - { - } - - template - CYJSString(Arg0_ arg0, Arg1_ arg1) : - string_(CYCopyJSString(arg0, arg1)) + template + CYJSString(Args_ &&... args) : + string_(CYCopyJSString(cy::Forward(args)...)) { }