extern JSStringRef Array_s;
extern JSStringRef cy_s;
+extern JSStringRef cyi_s;
extern JSStringRef length_s;
extern JSStringRef message_s;
extern JSStringRef name_s;
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);
+
void CYFinalize(JSObjectRef object);
size_t CYArrayLength(JSContextRef context, JSObjectRef array);
JSStringRef CYCopyJSString(CYUTF8String value);
JSStringRef CYCopyJSString(JSContextRef context, JSValueRef value);
+void CYGarbageCollect(JSContextRef context);
+void CYDestroyContext();
+
class CYJSString {
private:
JSStringRef string_;