Merge branch 'master' of factorcode.org:/git/factor
commit
1f30eba364
|
@ -2,16 +2,18 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: alien alien.c-types alien.libraries alien.syntax
|
USING: alien alien.c-types alien.libraries alien.syntax
|
||||||
classes.struct combinators io.encodings.utf16n
|
classes.struct combinators io.encodings.utf16n
|
||||||
io.encodings.utf8 system ;
|
io.encodings.utf8 kernel system ;
|
||||||
IN: javascriptcore.ffi
|
IN: javascriptcore.ffi
|
||||||
|
|
||||||
<<
|
<<
|
||||||
"javascriptcore" {
|
"javascriptcore" {
|
||||||
{ [ os macosx? ] [ "/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/JavaScriptCore" ] }
|
{ [ os macosx? ] [
|
||||||
|
"/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/JavaScriptCore" cdecl add-library
|
||||||
|
] }
|
||||||
! { [ os winnt? ] [ "javascriptcore.dll" ] }
|
! { [ os winnt? ] [ "javascriptcore.dll" ] }
|
||||||
! { [ os unix? ] [ "libsqlite3.so" ] }
|
! { [ os unix? ] [ "libsqlite3.so" ] }
|
||||||
[ ]
|
[ drop ]
|
||||||
} cond cdecl add-library
|
} cond
|
||||||
>>
|
>>
|
||||||
|
|
||||||
LIBRARY: javascriptcore
|
LIBRARY: javascriptcore
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
USING: accessors javascriptcore kernel tools.test ;
|
USING: accessors javascriptcore kernel tools.test ;
|
||||||
IN: javascriptcore.tests
|
IN: javascriptcore.tests
|
||||||
|
|
||||||
[ "2" ] [ "1+1" eval-js ] unit-test
|
[ "2" ] [ "1+1" eval-js-standalone ] unit-test
|
||||||
|
|
||||||
[ "1+shoes" eval-js ]
|
[ "1+shoes" eval-js-standalone ]
|
||||||
[ error>> "ReferenceError: Can't find variable: shoes" = ] must-fail-with
|
[ error>> "ReferenceError: Can't find variable: shoes" = ] must-fail-with
|
||||||
|
|
||||||
|
|
|
@ -35,14 +35,13 @@ SYMBOL: js-context
|
||||||
drop f
|
drop f
|
||||||
] if* ;
|
] if* ;
|
||||||
|
|
||||||
: eval-js ( string -- result-string )
|
: eval-js ( context string -- result-string )
|
||||||
'[
|
dupd JSStringCreateWithUTF8CString f f 0 JSValueRef <c-object>
|
||||||
[
|
|
||||||
dup _ JSStringCreateWithUTF8CString f f 0 JSValueRef <c-object>
|
|
||||||
[ JSEvaluateScript ] keep *void*
|
[ JSEvaluateScript ] keep *void*
|
||||||
dup [ nip JSValueRef>string javascriptcore-error ] [ drop JSValueRef>string ] if
|
dup [ nip JSValueRef>string javascriptcore-error ] [ drop JSValueRef>string ] if ;
|
||||||
] with-global-context
|
|
||||||
] with-javascriptcore ;
|
|
||||||
|
|
||||||
: eval-js-path ( path -- result-string ) utf8 file-contents eval-js ;
|
: eval-js-standalone ( string -- result-string )
|
||||||
|
'[ [ _ eval-js ] with-global-context ] with-javascriptcore ;
|
||||||
|
|
||||||
|
: eval-js-path-standalone ( path -- result-string ) utf8 file-contents eval-js-standalone ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue