From 5249ebfdf20a46efc029b7208bc81829acc6c5bc Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 19 Apr 2010 18:03:44 -0500 Subject: [PATCH] Use the javascriptcore library in javascriptcore bindings.. --- extra/javascriptcore/ffi/ffi.factor | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/extra/javascriptcore/ffi/ffi.factor b/extra/javascriptcore/ffi/ffi.factor index b0458d3cf6..844e169eed 100644 --- a/extra/javascriptcore/ffi/ffi.factor +++ b/extra/javascriptcore/ffi/ffi.factor @@ -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 ) ;