JSValueRef CYJSUndefined(JSContextRef context);
JSValueRef CYJSNull(JSContextRef context);
-void *CYCastPointer_(JSContextRef context, JSValueRef value);
+void *CYCastPointer_(JSContextRef context, JSValueRef value, bool *guess = NULL);
template <typename Type_>
-_finline Type_ CYCastPointer(JSContextRef context, JSValueRef value) {
- return reinterpret_cast<Type_>(CYCastPointer_(context, value));
+_finline Type_ CYCastPointer(JSContextRef context, JSValueRef value, bool *guess = NULL) {
+ return reinterpret_cast<Type_>(CYCastPointer_(context, value, guess));
}
void CYPoolFFI(CYPool *pool, JSContextRef context, sig::Type *type, ffi_type *ffi, void *data, JSValueRef value);
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);
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);
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);