bool CYCastBool(JSContextRef context, JSValueRef value);
double CYCastDouble(JSContextRef context, JSValueRef value);
+bool CYIsEqual(JSContextRef context, JSValueRef lhs, JSValueRef rhs);
+bool CYIsStrictEqual(JSContextRef context, JSValueRef lhs, JSValueRef rhs);
+
CYUTF8String CYPoolUTF8String(CYPool &pool, JSContextRef context, JSStringRef value);
const char *CYPoolCString(CYPool &pool, JSContextRef context, JSStringRef value);
const char *CYPoolCCYON(CYPool &pool, JSContextRef context, JSObjectRef object, std::set<void *> &objects);
std::set<void *> *CYCastObjects(JSContextRef context, JSObjectRef _this, size_t count, const JSValueRef arguments[]);
-struct CYHooks {
+struct CYHook {
void *(*ExecuteStart)(JSContextRef);
void (*ExecuteEnd)(JSContextRef, void *);
JSValueRef (*FromFFI)(JSContextRef, sig::Type *, ffi_type *, void *, bool, JSObjectRef);
};
-extern struct CYHooks *hooks_;
+struct CYRegisterHook {
+ CYRegisterHook(CYHook *hook);
+};
JSObjectRef CYMakePointer(JSContextRef context, void *pointer, size_t length, sig::Type *type, ffi_type *ffi, JSObjectRef owner);
-JSObjectRef CYMakeType(JSContextRef context, const char *encoding);
JSObjectRef CYMakeType(JSContextRef context, sig::Type *type);
JSObjectRef CYMakeType(JSContextRef context, sig::Signature *signature);