]> gitweb.factorcode.org Git - factor.git/commitdiff
Use the javascriptcore library in javascriptcore bindings..
authorDoug Coleman <doug.coleman@gmail.com>
Mon, 19 Apr 2010 23:03:44 +0000 (18:03 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 19 Apr 2010 23:03:44 +0000 (18:03 -0500)
extra/javascriptcore/ffi/ffi.factor

index b0458d3cf6e738083e330f9327f6398675a63616..844e169eed3407cef339f7ef66dd368f88133217 100644 (file)
@@ -1,8 +1,19 @@
 ! Copyright (C) 2010 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.c-types alien.syntax classes.struct ;
+USING: alien alien.c-types alien.libraries alien.syntax
+classes.struct combinators io.encodings.utf8 system ;
 IN: javascriptcore.ffi
 
+<<
+"javascriptcore" {
+        { [ os macosx? ] [ "/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/JavaScriptCore" ] }
+        ! { [ os winnt? ]  [ "javascriptcore.dll" ] }
+        ! { [ os unix? ]  [ "libsqlite3.so" ] }
+    } cond cdecl add-library
+>>
+
+LIBRARY: javascriptcore
+
 TYPEDEF: void* JSContextGroupRef
 TYPEDEF: void* JSContextRef
 TYPEDEF: void* JSGlobalContextRef
@@ -24,6 +35,8 @@ TYPEDEF: void* JSObjectCallAsConstructorCallback
 TYPEDEF: void* JSObjectHasInstanceCallback
 TYPEDEF: void* JSObjectConvertToTypeCallback
 TYPEDEF: uint unsigned
+TYPEDEF: ushort JSChar
+! char[utf16n] for strings
 
 C-ENUM: JSPropertyAttributes
     { kJSPropertyAttributeNone       0 }
@@ -187,12 +200,9 @@ FUNCTION: JSStringRef JSPropertyNameArrayGetNameAtIndex ( JSPropertyNameArrayRef
 
 FUNCTION: void JSPropertyNameAccumulatorAddName ( JSPropertyNameAccumulatorRef accumulator, JSStringRef propertyName ) ;
 
-! char[utf16n] for strings
-TYPEDEF: ushort JSChar
-
 FUNCTION: JSStringRef JSStringCreateWithCharacters ( JSChar* chars, size_t numChars ) ;
 
-FUNCTION: JSStringRef JSStringCreateWithUTF8CString ( char* string ) ;
+FUNCTION: JSStringRef JSStringCreateWithUTF8CString ( c-string[utf8] string ) ;
 
 FUNCTION: JSStringRef JSStringRetain ( JSStringRef string ) ;