1 ! Copyright (C) 2010 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.libraries alien.syntax
4 classes.struct combinators io.encodings.utf16n
5 io.encodings.utf8 kernel system ;
11 "/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/JavaScriptCore" cdecl add-library
13 ! { [ os windows? ] [ "javascriptcore.dll" ] }
14 ! { [ os unix? ] [ "libsqlite3.so" ] }
19 LIBRARY: javascriptcore
21 TYPEDEF: void* JSContextGroupRef
22 TYPEDEF: void* JSContextRef
23 TYPEDEF: void* JSGlobalContextRef
24 TYPEDEF: void* JSStringRef
25 TYPEDEF: void* JSClassRef
26 TYPEDEF: void* JSPropertyNameArrayRef
27 TYPEDEF: void* JSPropertyNameAccumulatorRef
28 TYPEDEF: void* JSValueRef
29 TYPEDEF: void* JSObjectRef
30 TYPEDEF: void* JSObjectInitializeCallback
31 TYPEDEF: void* JSObjectFinalizeCallback
32 TYPEDEF: void* JSObjectHasPropertyCallback
33 TYPEDEF: void* JSObjectGetPropertyCallback
34 TYPEDEF: void* JSObjectSetPropertyCallback
35 TYPEDEF: void* JSObjectDeletePropertyCallback
36 TYPEDEF: void* JSObjectGetPropertyNamesCallback
37 TYPEDEF: void* JSObjectCallAsFunctionCallback
38 TYPEDEF: void* JSObjectCallAsConstructorCallback
39 TYPEDEF: void* JSObjectHasInstanceCallback
40 TYPEDEF: void* JSObjectConvertToTypeCallback
41 TYPEDEF: uint unsigned
42 TYPEDEF: ushort JSChar
44 ENUM: JSPropertyAttributes
45 { kJSPropertyAttributeNone 0 }
46 { kJSPropertyAttributeReadOnly 2 }
47 { kJSPropertyAttributeDontEnum 4 }
48 { kJSPropertyAttributeDontDelete 8 } ;
50 ENUM: JSClassAttributes
51 { kJSClassAttributeNone 0 }
52 { kJSClassAttributeNoAutomaticPrototype 2 } ;
64 { getProperty JSObjectGetPropertyCallback }
65 { setProperty JSObjectSetPropertyCallback }
66 { attributes JSPropertyAttributes } ;
68 STRUCT: JSStaticFunction
70 { callAsFunction JSObjectCallAsFunctionCallback } ;
72 STRUCT: JSClassDefinition
74 { attributes JSClassAttributes }
75 { className c-string }
76 { parentClass JSClassRef }
77 { staticValues JSStaticValue* }
78 { staticFunctions JSStaticFunction* }
79 { initialize JSObjectInitializeCallback }
80 { finalize JSObjectFinalizeCallback }
81 { hasProperty JSObjectHasPropertyCallback }
82 { getProperty JSObjectGetPropertyCallback }
83 { setProperty JSObjectSetPropertyCallback }
84 { deleteProperty JSObjectDeletePropertyCallback }
85 { getPropertyNames JSObjectGetPropertyNamesCallback }
86 { callAsFunction JSObjectCallAsFunctionCallback }
87 { callAsConstructor JSObjectCallAsConstructorCallback }
88 { hasInstance JSObjectHasInstanceCallback }
89 { convertToType JSObjectConvertToTypeCallback } ;
91 ALIAS: kJSClassDefinitionEmpty JSClassDefinition
93 FUNCTION: JSValueRef JSEvaluateScript (
96 JSObjectRef thisObject,
97 JSStringRef sourceURL,
98 int startingLineNumber,
99 JSValueRef* exception ) ;
101 FUNCTION: bool JSCheckScriptSyntax (
104 JSStringRef sourceURL,
105 int startingLineNumber,
106 JSValueRef* exception ) ;
108 FUNCTION: void JSGarbageCollect
109 ( JSContextRef ctx ) ;
111 FUNCTION: JSContextGroupRef JSContextGroupCreate
114 FUNCTION: JSContextGroupRef JSContextGroupRetain
115 ( JSContextGroupRef group ) ;
117 FUNCTION: void JSContextGroupRelease
118 ( JSContextGroupRef group ) ;
120 FUNCTION: JSGlobalContextRef JSGlobalContextCreate
121 ( JSClassRef globalObjectClass ) ;
123 FUNCTION: JSGlobalContextRef JSGlobalContextCreateInGroup (
124 JSContextGroupRef group,
125 JSClassRef globalObjectClass ) ;
127 FUNCTION: JSGlobalContextRef JSGlobalContextRetain
128 ( JSGlobalContextRef ctx ) ;
130 FUNCTION: void JSGlobalContextRelease
131 ( JSGlobalContextRef ctx ) ;
133 FUNCTION: JSObjectRef JSContextGetGlobalObject
134 ( JSContextRef ctx ) ;
136 FUNCTION: JSContextGroupRef JSContextGetGroup
137 ( JSContextRef ctx ) ;
139 FUNCTION: JSClassRef JSClassCreate
140 ( JSClassDefinition* definition ) ;
142 FUNCTION: JSClassRef JSClassRetain
143 ( JSClassRef jsClass ) ;
145 FUNCTION: void JSClassRelease
146 ( JSClassRef jsClass ) ;
148 FUNCTION: JSObjectRef JSObjectMake
150 JSClassRef jsClass, void* data ) ;
152 FUNCTION: JSObjectRef JSObjectMakeFunctionWithCallback ( JSContextRef ctx, JSStringRef name, JSObjectCallAsFunctionCallback callAsFunction ) ;
154 FUNCTION: JSObjectRef JSObjectMakeConstructor ( JSContextRef ctx, JSClassRef jsClass, JSObjectCallAsConstructorCallback callAsConstructor ) ;
156 FUNCTION: JSObjectRef JSObjectMakeArray ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
158 FUNCTION: JSObjectRef JSObjectMakeDate ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
160 FUNCTION: JSObjectRef JSObjectMakeError ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
162 FUNCTION: JSObjectRef JSObjectMakeRegExp ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
164 FUNCTION: JSObjectRef JSObjectMakeFunction ( JSContextRef ctx, JSStringRef name, unsigned parameterCount, JSStringRef parameterNames[], JSStringRef body, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception ) ;
166 FUNCTION: JSValueRef JSObjectGetPrototype ( JSContextRef ctx, JSObjectRef object ) ;
168 FUNCTION: void JSObjectSetPrototype ( JSContextRef ctx, JSObjectRef object, JSValueRef value ) ;
170 FUNCTION: bool JSObjectHasProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName ) ;
172 FUNCTION: JSValueRef JSObjectGetProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception ) ;
174 FUNCTION: void JSObjectSetProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSPropertyAttributes attributes, JSValueRef* exception ) ;
176 FUNCTION: bool JSObjectDeleteProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception ) ;
178 FUNCTION: JSValueRef JSObjectGetPropertyAtIndex ( JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef* exception ) ;
180 FUNCTION: void JSObjectSetPropertyAtIndex ( JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef value, JSValueRef* exception ) ;
182 FUNCTION: void* JSObjectGetPrivate ( JSObjectRef object ) ;
184 FUNCTION: bool JSObjectSetPrivate ( JSObjectRef object, void* data ) ;
186 FUNCTION: bool JSObjectIsFunction ( JSContextRef ctx, JSObjectRef object ) ;
188 FUNCTION: JSValueRef JSObjectCallAsFunction ( JSContextRef ctx, JSObjectRef object, JSObjectRef thisObject, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
190 FUNCTION: bool JSObjectIsConstructor ( JSContextRef ctx, JSObjectRef object ) ;
192 FUNCTION: JSObjectRef JSObjectCallAsConstructor ( JSContextRef ctx, JSObjectRef object, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
194 FUNCTION: JSPropertyNameArrayRef JSObjectCopyPropertyNames ( JSContextRef ctx, JSObjectRef object ) ;
196 FUNCTION: JSPropertyNameArrayRef JSPropertyNameArrayRetain ( JSPropertyNameArrayRef array ) ;
198 FUNCTION: void JSPropertyNameArrayRelease ( JSPropertyNameArrayRef array ) ;
200 FUNCTION: size_t JSPropertyNameArrayGetCount ( JSPropertyNameArrayRef array ) ;
202 FUNCTION: JSStringRef JSPropertyNameArrayGetNameAtIndex ( JSPropertyNameArrayRef array, size_t index ) ;
204 FUNCTION: void JSPropertyNameAccumulatorAddName ( JSPropertyNameAccumulatorRef accumulator, JSStringRef propertyName ) ;
206 FUNCTION: JSStringRef JSStringCreateWithCharacters ( JSChar* chars, size_t numChars ) ;
208 FUNCTION: JSStringRef JSStringCreateWithUTF8CString ( c-string string ) ;
210 FUNCTION: JSStringRef JSStringRetain ( JSStringRef string ) ;
212 FUNCTION: void JSStringRelease ( JSStringRef string ) ;
214 FUNCTION: size_t JSStringGetLength ( JSStringRef string ) ;
216 FUNCTION: JSChar* JSStringGetCharactersPtr ( JSStringRef string ) ;
218 FUNCTION: size_t JSStringGetMaximumUTF8CStringSize ( JSStringRef string ) ;
220 FUNCTION: size_t JSStringGetUTF8CString ( JSStringRef string, char* buffer, size_t bufferSize ) ;
222 FUNCTION: bool JSStringIsEqual ( JSStringRef a, JSStringRef b ) ;
224 FUNCTION: bool JSStringIsEqualToUTF8CString ( JSStringRef a, char* b ) ;
226 FUNCTION: JSType JSValueGetType ( JSContextRef ctx, JSValueRef value ) ;
228 FUNCTION: bool JSValueIsUndefined ( JSContextRef ctx, JSValueRef value ) ;
230 FUNCTION: bool JSValueIsNull ( JSContextRef ctx, JSValueRef value ) ;
232 FUNCTION: bool JSValueIsBoolean ( JSContextRef ctx, JSValueRef value ) ;
234 FUNCTION: bool JSValueIsNumber ( JSContextRef ctx, JSValueRef value ) ;
236 FUNCTION: bool JSValueIsString ( JSContextRef ctx, JSValueRef value ) ;
238 FUNCTION: bool JSValueIsObject ( JSContextRef ctx, JSValueRef value ) ;
240 FUNCTION: bool JSValueIsObjectOfClass ( JSContextRef ctx, JSValueRef value, JSClassRef jsClass ) ;
242 FUNCTION: bool JSValueIsEqual ( JSContextRef ctx, JSValueRef a, JSValueRef b, JSValueRef* exception ) ;
244 FUNCTION: bool JSValueIsStrictEqual ( JSContextRef ctx, JSValueRef a, JSValueRef b ) ;
246 FUNCTION: bool JSValueIsInstanceOfConstructor ( JSContextRef ctx, JSValueRef value, JSObjectRef constructor, JSValueRef* exception ) ;
248 FUNCTION: JSValueRef JSValueMakeUndefined ( JSContextRef ctx ) ;
250 FUNCTION: JSValueRef JSValueMakeNull ( JSContextRef ctx ) ;
252 FUNCTION: JSValueRef JSValueMakeBoolean ( JSContextRef ctx, bool boolean ) ;
254 FUNCTION: JSValueRef JSValueMakeNumber ( JSContextRef ctx, double number ) ;
256 FUNCTION: JSValueRef JSValueMakeString ( JSContextRef ctx, JSStringRef string ) ;
258 FUNCTION: bool JSValueToBoolean ( JSContextRef ctx, JSValueRef value ) ;
260 FUNCTION: double JSValueToNumber ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
262 FUNCTION: JSStringRef JSValueToStringCopy ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
264 FUNCTION: JSObjectRef JSValueToObject ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
266 FUNCTION: void JSValueProtect ( JSContextRef ctx, JSValueRef value ) ;
268 FUNCTION: void JSValueUnprotect ( JSContextRef ctx, JSValueRef value ) ;