X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/dbf05bfd2ab79568fe706daa9112037192d4d9dd..8b898c07529e9b3338430715caf64c915a03a550:/JavaScript.hpp diff --git a/JavaScript.hpp b/JavaScript.hpp index 7a4d8a4..47a9618 100644 --- a/JavaScript.hpp +++ b/JavaScript.hpp @@ -1,5 +1,5 @@ -/* Cycript - Optimizing JavaScript Compiler/Runtime - * Copyright (C) 2009-2015 Jay Freeman (saurik) +/* Cycript - The Truly Universal Scripting Language + * Copyright (C) 2009-2016 Jay Freeman (saurik) */ /* GNU Affero General Public License, Version 3 {{{ */ @@ -41,6 +41,7 @@ #include "String.hpp" extern JSStringRef Array_s; +extern JSStringRef constructor_s; extern JSStringRef cy_s; extern JSStringRef cyi_s; extern JSStringRef cyt_s; @@ -63,7 +64,10 @@ 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[]); @@ -156,6 +160,8 @@ 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); +bool CYGetOffset(CYPool &pool, JSContextRef context, JSStringRef value, ssize_t &index); + const char *CYPoolCString(CYPool &pool, JSContextRef context, JSValueRef value); JSStringRef CYCopyJSString(const char *value); @@ -178,6 +184,11 @@ class CYJSString { } public: + CYJSString() : + string_(NULL) + { + } + CYJSString(const CYJSString &rhs) : string_(CYCopyJSString(rhs.string_)) { @@ -201,6 +212,11 @@ class CYJSString { return *this; } + CYJSString &operator =(CYJSString &&rhs) { + std::swap(string_, rhs.string_); + return *this; + } + ~CYJSString() { Clear_(); }