Reviewed by Eric.
[WebKit-https.git] / JavaScriptGlue / JSUtils.h
1 #ifndef JSUtils_h
2 #define JSUtils_h
3
4 /*
5     JSUtils.h
6 */
7
8 #include <JavaScriptGlue/JavaScriptGlue.h>
9
10 #include <JavaScriptCore/value.h>
11 #include <JavaScriptCore/object.h>
12 #include <JavaScriptCore/types.h>
13 #include <JavaScriptCore/interpreter.h>
14 #include <JavaScriptCore/protect.h>
15 #include <JavaScriptCore/collector.h>
16 #include <JavaScriptCore/ustring.h>
17
18 using namespace KJS;
19
20 class JSBase;
21 class JSUserObject;
22 class JSRun;
23 class JSValueWrapper;
24 class JSUserObjectImp;
25
26 UString CFStringToUString(CFStringRef inCFString);
27 CFStringRef UStringToCFString(const UString& inUString);
28 Identifier CFStringToIdentifier(CFStringRef inCFString);
29 CFStringRef IdentifierToCFString(const Identifier& inIdentifier);
30 JSUserObject *KJSValueToJSObject(ValueImp *inValue, ExecState *exec);
31 CFTypeRef KJSValueToCFType(ValueImp *inValue, ExecState *exec);
32 ValueImp *JSObjectKJSValue(JSUserObject* ptr);
33 CFTypeRef GetCFNull(void);
34
35 inline CFTypeRef RetainCFType(CFTypeRef x) { if (x) x = CFRetain(x); return x; }
36 inline void ReleaseCFType(CFTypeRef x) { if (x) CFRelease(x);  }
37
38 enum {
39     kJSInvalidTypeID = 0,
40     kJSObjectTypeID,
41     kJSRunTypeID
42 };
43
44 enum {
45     kJSUserObjectDataTypeUnknown,
46     kJSUserObjectDataTypeJSValueWrapper,
47     kJSUserObjectDataTypeCFType
48 };
49
50
51 #endif